AES

AES加密是一系列的异或与循环移位操做,并无进行扩展变换,因此明文与密文同样长,若是明文不是加密块大小的整数倍须要填充,注意ECB和CBC须要填充,即加密以后长度可能会不同,CFB和OFB不须要填充,密文与明文长度同样。git

https://github.com/kokke/tiny-AES-c/blob/master/中是嵌入式用的小型AES代码,有ECB/CBC/CTR。这个代码加解密时要用AES_init_ctx_iv(&ctx1, key, iv);AES_init_ctx_iv(&ctx2, key, iv);不一样的ctx,不然加密以后解密就会不成功。github

https://github.com/Ulez/EncryptLib中用NDK C进行AES加密,也是只有ECB/CBC,但JAVA则能够调用NDK C加密。算法

https://tls.mbed.org/aes-source-code则是较完备的AES代码库了,有ECB/CBC/CFB/CTR等,而且http://blog.csdn.net/easychang/article/details/51960264针对mbed的TLS库有CBC/ECB加解密演示代码。加密

还有一篇好文章: AES加密解密算法的C代码实现 http://blog.csdn.net/langeldep/article/details/6265680.net

相关文章
相关标签/搜索