不会 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()变成数值的,我想看到具体数值应该怎么弄。
总之尝试了半天,都得不出和网站加密一样的结果。