我有两个ID为salt
和password
<div>
$salt = '<span id="salt"></span>';<br />
$password = '<span id="password"></span>';
</div>
然后我使用以下jQuery代码获取salt,将其添加到用户输入的密码中,并返回salt和哈希密码(以复制到配置文件中)
salt = (Math.random() +1).toString(36).substr(2, 16);
$('#salt').html(salt);
hashed = CryptoJS.MD5(salt + $(this).val());
$('#password').html(hashed);
此代码使用salt
ID将salt添加到范围,但它不会向password
ID添加任何内容。
如果我输入代码alert(hashed)
,它将打开一个md5值的警报。
如果我将.html()
更改为.text()
则可行。
答案 0 :(得分:1)
CryptoJS.MD5()
方法返回一个对象。要将此对象转换为字符串,请使用toString()
方法。
hashed = CryptoJS.MD5(value);
var hashedString = hashed.toString();
使用jQuerys text()
方法将文本插入元素。 jQuery html()
方法用于设置元素innerHTML
值。但你想插入未转义的文字。
$('#password').text(hashedString);
如果对象传递给text()
,它会自动调用toString()
,但参考文献中没有记录
来自jQuery API Documentation:要设置为每个匹配元素内容的文本。提供Number或Boolean时,它将转换为String表示形式。 [...]请注意,此方法会根据需要转义提供的字符串,以便在HTML中正确呈现。
text()
的
要设置为每个匹配元素的内容的HTML字符串 .html(htmlString)
来自jQuery API Documentation: html()