继上次只有CryptoAPI的加密后,这次要实现openssl的了。
先前有说openssl移植到android的过程,这里就不再提android如何调用openssl了,而那一篇第9条提到的openssl与cryptoAPI兼容的两种方式感觉实现都不太好用,这里再次提出一种AES加密的实现方式。
写这边文章的最主要的原因,用过CryptoAPI的都知道,很多东西都封装了,如果要与其他加密组件交互,得用其他组件来实现CryptoAPI的思路。
环境:windows visual studio 2010,openssl windows(x86)动态库。
在CryptoAPI中进行AES加密解密,有一种实现方式是调用CryptDeriveKey通过提供的字节数组的hash值获取key。
先来看下CryptoAPI实现AES,来个简单点的版本。
openssl要以同样的方式做一次这个步骤,首先是MD5摘要,相对比较简单
主要看remarks里面的实现步骤:
非常简单的英文,不做翻译了...
直接上openssl代码实现
下面是CrytpoAPI的解密:
再来最后一个,openssl的解密
测试下: