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

相關文章
相關標籤/搜索