2009-05-23 8 views

答えて

2

を使用してAES/CBC/PKCS5Paddingを使用してデータを復号化する

私はBouncy Castle Libraryがそれをサポートしていると思います。短いチュートリアルも提供しています。

0

バウンス城には、これを行うための素晴らしい図書館があります。主な問題は安全な方法でキーを取得する方法です。私は.NETとJavaが互換性のない方法でキーをシリアル化していることを発見しました。セキュリティ転送のためにRSAを使用して転送されたように、キー転送を容易にするためにBouncy Castleを使用しました。

5

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 
+0

鉱山より良い答えですが、私の防衛のために、私は見ていませんでした私があなたのことを読むまで、ブラックベリーのタグ。 :-) – wds

関連する問題