XXTEA加密算法的各种程序实现整理.docVIP

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
引用XXTEA文章说明资料: “... XXTEA 算法很安全,而且非常快速,非常适合应用于 Web 开发中。但目前似乎很少有人将该算法用于实际开发中。甚至国内尚无介绍该算法的文章(至少在 Google 上搜索不到这方面的中文文章,关于密码学算法的书中也未见提及)。我在 Google 上搜索到了几个国外的 XXTEA 算法的实现(见 参考文献 )...” 。 JavaScript实现(下载文件) //=================================; /* xxtea.js * * Author: Ma Bingyao andot@ * Copyright: CoolCode.CN * Version: 1.2 * LastModified: 2006-05-02 * This library is free. You can redistribute it and/or modify it. * /?p=128 */ function long2str(v, w) { var vl = v.length; var sl = v[vl - 1] 0xffffffff; for (var i = 0; i vl; i++) { v[i] = String.fromCharCode(v[i] 0xff, v[i] 8 0xff, v[i] 16 0xff, v[i] 24 0xff); } if (w) { return v.join().substring(0, sl); } else { return v.join(); } } function str2long(s, w) { var len = s.length; var v = []; for (var i = 0; i len; i += 4) { v[i 2] = s.charCodeAt(i) | s.charCodeAt(i + 1) 8 | s.charCodeAt(i + 2) 16 | s.charCodeAt(i + 3) 24; } if (w) { v[v.length] = len; } return v; } function xxtea_encrypt(str, key) { if (str == ) { return ; } var v = str2long(str, true); var k = str2long(key, false); var n = v.length - 1; var z = v[n], y = v[0], delta = 0x9E3779B9; var mx, e, q = Math.floor(6 + 52 / (n + 1)), sum = 0; while (q-- 0) { sum = sum + delta 0xffffffff; e = sum 2 3; for (var p = 0; p n; p++) { y = v[p + 1]; mx = (z 5 ^ y 2) + (y 3 ^ z 4) ^ (sum ^ y) + (k[p 3 ^ e] ^ z); z = v[p] = v[p] + mx 0xffffffff; } y = v[0]; mx = (z 5 ^ y 2) + (y 3 ^ z 4) ^ (sum ^ y) + (k[p 3 ^ e] ^ z); z = v[n] = v[n] + mx 0xffffffff; } return long2str(v, false); } function xxtea_decrypt(str, key) { if (str == ) { return ; } var v = str2long(str, false); var k = str2long(key, false); var n = v.length - 1; var z = v[n - 1], y = v[0], delta = 0x9E3779B9; var mx, e, q = Math.floor(6 + 52 / (n + 1)), sum = q * delta 0xffffffff; while (sum != 0) { e = sum 2 3; for (var p = n; p 0; p--) { z = v[p - 1]; mx = (z 5 ^ y 2) + (y 3 ^ z 4) ^ (sum ^ y) + (k[p 3 ^ e] ^ z); y = v[p] = v[p] - mx 0xffffffff; } z = v[n]; mx = (z 5 ^ y

文档评论(0)

yan666888 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档