Mik*_*ike 5 c# encryption bouncycastle aes encryption-symmetric
我想移植这个简单的JAVA示例......
使用J2ME中的Bouncycastle示例进行AES加密/解密
...到C#并有以下两个问题:
据我了解,JAVA示例使用AESEngine进行加密/解密操作.AESEngine和AESFastEngine和AESLightEngine有什么区别?遗憾的是,我不理解文档中提供的信息:http://www.bouncycastle.org/docs/docs1.6/index.html
我想为我加密的每个文件使用新的加密密钥.我应该使用哪种分组密码操作模式:AES.CBC,AES.CFB,AES.ECB或AES.OFB http://www.bouncycastle.org/docs/docs1.6/index.html
我的假设是正确的,在我的情况下,我不必使用iv/salt(这意味着我必须使用静态iv?)因为我使用AES.KeyGen128()进行密钥生成并且只使用一次?
http://www.bouncycastle.org/docs/docs1.6/index.html
希望我的问题不会造成太多的混乱;-)但我感谢你能给我的每一个答案,澄清或反馈.
麦克风
我对该文档的解读表明,AESE发动机,FastEngine和LightEngine都采取不同的记忆与速度之间的权衡.您必须自己进行测试,以确定这些权衡是否与您的方案相关.
您需要阅读各种AES模式.不同的模式具有不同的强度和属性,根据您的情况,这些优势和属性可能或多或少适用或者可取.所以你的问题的答案是"它取决于".
没有.你需要一个IV.就盐而言,它通常与密码短语一起用于生成实际加密密钥和IV,通常通过PKBDF2.这超出了AES的范围,但这是一种典型的用法.
最后你没有问,但....为什么要将代码移植到C#?.NET内置AES加密功能.您不需要移植任何东西,只需使用.NET基类库即可.只需确保使用相同的密钥大小和模式,并确保每侧的密钥+ iv相同,.NET BCL AES类将与J2ME的BouncyCastle内容互操作.
| 归档时间: |
|
| 查看次数: |
4452 次 |
| 最近记录: |