我想为Android开发一个简单的加密应用程序.我应该使用哪种算法来加密所有数据类型,例如图像,办公文档,多媒体等,为什么它是一种很好的算法?
AES是否涵盖所有类型的数据?
解决方法:
AES可以加密可以表示为字节序列的任何数据,因此可以加密所有类型的数据.
AES已经通过了大量的测试,但是还没有人破坏它.几乎每个加密库都将包含AES,包括Bouncy Castle和Android的Spongy Castle. AES是标准并且是您的首选,除非您有特定的原因不使用它.
在带有PKCS7填充的CBC模式或CTR模式下使用它.是的,如果您不知道,则需要学习一些有关block cypher modes和cryptographic padding的知识.
对于身份验证,如果需要,请使用HMAC-SHA256或GCM模式,其中包括身份验证.