//html
<label for="encode" class="encode"></label>
<label for="decode" class="decode"></label>
<textarea id="encode"></textarea>
<textarea id="decode"></textarea>
// default base64.js code
var dec = $('#decode'),
enc = $('#encode');
$.base64.utf8encode = true;
enc.keyup(function () {
dec.val($.base64.btoa(this.value));
});
dec.keyup(function () {
enc.val($.base64.atob(this.value, true));
});
$('textarea').on('focus blur', function () {
$(this).prev('label').stop().fadeToggle(200);
});
当用户为了验证目的键入其名称时,用户会看到加密文本,我希望在用户输入时添加日期/时间或字符串以包含在加密文本中,并且没有用户知识,所以基本上输出将是:
//Decrypted Text:
Name, Date/Time, Mycompanyname etc ...
答案 0 :(得分:0)
在Base64编码字符串之前附加要添加的数据。用户没有在他们的框中看到它,如果您解码编码输出,那么它将附加附加信息。
http://jsfiddle.net/uwxw632f/5/
function addMetadata(str) {
return str + ', ' + new Date() + ', Mycompanyname, etc...';
}
var dec = $('#decode'),
enc = $('#encode');
$.base64.utf8encode = true;
enc.keyup(function () {
dec.val($.base64.btoa(addMetadata(this.value)));
});
dec.keyup(function () {
enc.val($.base64.atob(this.value, true));
});
$('textarea').on('focus blur', function () {
$(this).prev('label').stop().fadeToggle(200);
});
请注意,加密与编码不同,并且用户反转base64 编码是微不足道的。