XXTea加密的使用

最近因为项目需要使用简单的加密算法,是加密后的密文保存在本地,于是上网找了比较应用广泛的xxtea,本是c++项目但是没有找到对应版本的xxtea,只能用c版本的进行开发。
TEA算法每一次可以操作64bit(8byte),采用128bit(16byte)作为key,算法采用迭代的形式,推荐的迭代轮数是64轮,最少32轮。为解决TEA算法密钥表攻击的问题,TEA算法先后经历了几次改进,从XTEA到BLOCK TEA,直至最新的XXTEA。XTEA也称做TEAN,它使用与TEA相同的简单运算,但四个子密钥采取不正规的方式进行混合以阻止密钥表攻击。最后输出为base64_encode代码。

简单说下用法
unsigned char encrypt_data = xxtea_encrypt(key, strlen(key), text, &len);
在这里text为用户名,key为密码。生成的encrypt_data即可当做秘钥进行保存。
其中由于c的void * 和 char
可以不进行安全检查进行转换,而c++是禁止这样的,所以需要加上主动类型转换即(char*)

char *decrypt_data = xxtea_decrypt(encrypt_data, len, key, &len);
在这里可以用xxtea_decrypt进行对本地保存的秘钥encrypt_data进行解密,和用户输入的密码进行对比。

https://github.com/xxtea

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • /**ios常见的几种加密方法: 普通的加密方法是讲密码进行加密后保存到用户偏好设置( [NSUserDefaul...
    彬至睢阳阅读 3,015评论 0 7
  • 1. ASCII 编码 ASCII(American Standard Code for Information ...
    s酸菜阅读 8,745评论 0 8
  • 引言 如今手机app五彩缤纷,确保手机用户的数据安全是开发人员必须掌握的技巧,下面通过实例介绍DES在androi...
    freesan44阅读 1,166评论 1 1
  • 之前的项目中接触过一些加密的方法,也没有太仔细的进行记录和研究。最近在写SDK时,加密模块的占比相当之大;借此时机...
    过半_e764阅读 605评论 0 0
  • 终于考完了,心里瞬间轻松了。雨,已经连续下了几天,还好我们坐上车后才下的雨。 因为有好些学校都开始放假了,所以车上...
    风枫沨凨阅读 283评论 0 0