AES/CBC/PKCS5Padding暗号化インスタンスを使用してJavaでAES暗号化と復号化を行います 上記で暗号化されたブラックベリーを使用してデータを復号化する方法を教えてください。ブラックベリーブラックベリーを使用してAES/CBC/PKCS5Paddingでデータを復号する
おかげ BAPI
AES/CBC/PKCS5Padding暗号化インスタンスを使用してJavaでAES暗号化と復号化を行います 上記で暗号化されたブラックベリーを使用してデータを復号化する方法を教えてください。ブラックベリーブラックベリーを使用してAES/CBC/PKCS5Paddingでデータを復号する
おかげ BAPI
を使用してAES/CBC/PKCS5Paddingを使用してデータを復号化する
私はBouncy Castle Libraryがそれをサポートしていると思います。短いチュートリアルも提供しています。
バウンス城には、これを行うための素晴らしい図書館があります。主な問題は安全な方法でキーを取得する方法です。私は.NETとJavaが互換性のない方法でキーをシリアル化していることを発見しました。セキュリティ転送のためにRSAを使用して転送されたように、キー転送を容易にするためにBouncy Castleを使用しました。
BlackBerry APIを使用することをお勧めします(Bouncy Castleはうまくいくが、なぜ複雑なのか?)。
net.rim.cryptoパッケージを使用する - すべての対称暗号化を使用しているため、標準でRIM signing keysが必要です(取得するには20ドルと2〜3日間)。シミュレータですべてを行います。
基本的に、AESDecryptorEngineをラップするCBCDecryptorEngineをラップするPKCS5UnformatterEngineを作成したいと思うでしょう。あなたが扱うことができるように、おそらくBlockDecryptor内のすべてをラップして、InputStreamと同じです。 (私はこれをやったので、書かれたとして、それが100%に動作しない場合がありますので、それは、少しの間をされている)ような何か:
InputStream encryptedInput; // if you have a byte[] of data, use a ByteArrayInputStream
AESKey key = new AESKey(<your key data as a byte[]>)
InitializationVector iv = new InitializationVector(<your iv data as a byte[]>) // of course you need to know your IV since you're doing CBC encryption
BlockDecryptor decryptor = new BlockDecryptor(
new PKCS5UnformatterEngine(
new CBCDecryptorEngine(
new AESDecryptorEngine(key),
iv
)
)
);
// then decryptor acts as an InputStream which gives you your decrypted, unpacked data
decryptor.read(buffer); // buffer will contain decrypted, unpacked data
鉱山より良い答えですが、私の防衛のために、私は見ていませんでした私があなたのことを読むまで、ブラックベリーのタグ。 :-) – wds