不会 javascript,只能拿来问了。 简化了下代码,大概如下
function chkSubmit() {
var key = CryptoJS.enc.Hex.parse(setcjhkey(1));
var iv = CryptoJS.enc.Hex.parse(setcjhkey(2));
var mgid = $('input[name=mgid_enc]').val();
var mgpw = $('input[name=mgpwd_enc]').val();
var uidencdata = CryptoJS.AES.encrypt(mgid, key, { iv: iv });
var upwdencdata = CryptoJS.AES.encrypt(mgpw, key, { iv: iv });
$('#login1').val(uidencdata);
$('#login2').val(upwdencdata);
}
用 chrome 来调试的,但变量似乎是各种“对象”,也不知道怎么把具体值给取出来。
问题 1,CryptoJS.enc.Hex.parse(),这个是啥?使用了这个方法后,字符串变成了一个长度 4 的数组,推测对应 python 里的b2a_hex
,也不知道是不是,反正结果看上去也看不太出-_-
问题 2,CryptoJS.AES.encrypt(),这个加密模式,数据块长度,填充方式完全看不出来,就算断点进去,翻了半天好像也没看出来。如果没有明说就代表默认的话,那默认是什么!?
问题 3,在 chrome 里 uidencdata
和 upwdencdata
都显示的是对象,是怎么用.val()变成数值的,我想看到具体数值应该怎么弄。
总之尝试了半天,都得不出和网站加密一样的结果。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.