使用javascript加密,无需任何外部库 [英] encryption using javascript without any external library
本文介绍了使用javascript加密,无需任何外部库的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
在登录页面上,我在此检查中 emember me check 点击使用javascript在cookie中保存用户名和密码,但我想保存加密的密码cookie以便它可以保证。 (请不要使用任何外部JS库)
解决方案
( function (出口){
use strict;
< span class =code-keyword> var XORCipher = {
encode: function (key,data){
data = xor_encrypt(key,data);
return b64_encode(data);
},
decode:函数(键,数据){
data = b64_decode(data);
return xor_decrypt(key,data) ;
}
};
var b64_table = ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 + / =;
function b64_encode(d ata){
var o1,o2,o3,h1,h2,h3,h4,bits,r,i = 0 ,enc = ;
if (!data){ return 数据; }
做 {
o1 = data [i ++];
o2 = data [i ++];
o3 = data [i ++];
bits = o1<< 16 | o2<< 8 | O3;
h1 = bits>> 18 & 0x3F的;
h2 =位>> 12 & 0x3F的;
h3 = bits>> 6 & 0x3F的;
h4 =位& 0x3F的;
enc + = b64_table.charAt(h1)+ b64_table.charAt(h2)+ b64_table.charAt(h3)+ b64_table.charAt(h4);
} while (i< data.length);
r = data.length% 3 ;
return (r?enc.slice( 0 ,r - 3 ):enc)+ === .slice( r || 3 );
}
function b64_decode(data){
var o1,o2,o3,h1,h2,h3,h4,bits,i = 0 ,result = [];
if (!data){ return 数据; }
data + = ;
do {
h1 = b64_table.indexOf(data.charAt(i ++));
h2 = b64_table.indexOf(data.charAt(i ++));
h3 = b64_table.indexOf(data.charAt(i ++));
h4 = b64_table.indexOf(data.charAt(i ++));
bits = h1<< 18 | h2<< 12 | h3<< 6 | H4;
o1 = bits>> 16 & 0xFF的;
o2 =位>> 8 & 0xFF的;
o3 =位& 0xFF的;
result.push(o1);
if (h3!== 64 ){
result.push(o2 );
if (h4!== 64 ){
result.push(o3 );
}
}
} while (i< data.length);
返回结果;
}
function keyCharAt(key,i){
return key.charCodeAt( Math .floor(i%key.length));
}
function xor_encrypt(密钥,数据){
return _.map(data, function (c,i){
return c.charCodeAt( 0 )^ keyCharAt(key,i);
});
}
function xor_decrypt(密钥,数据){
return _.map(data, function (c,i){
return String .fromCharCode(c ^ keyCharAt(key,i));
})。join( );
}
exports.XORCipher = XORCipher;
})(此);
调用函数示例:
XORCipher.encode( test, foobar);
XORCipher.decode( test, EgocFhUX);
On Login page I made a remember me check on this check click saving user name and password in cookies using javascript but i want to save encrypted password cookies so that it can secure. (without using any external JS library please)
解决方案
(function(exports) { "use strict"; var XORCipher = { encode: function(key, data) { data = xor_encrypt(key, data); return b64_encode(data); }, decode: function(key, data) { data = b64_decode(data); return xor_decrypt(key, data); } }; var b64_table = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; function b64_encode(data) { var o1, o2, o3, h1, h2, h3, h4, bits, r, i = 0, enc = ""; if (!data) { return data; } do { o1 = data[i++]; o2 = data[i++]; o3 = data[i++]; bits = o1 << 16 | o2 << 8 | o3; h1 = bits >> 18 & 0x3f; h2 = bits >> 12 & 0x3f; h3 = bits >> 6 & 0x3f; h4 = bits & 0x3f; enc += b64_table.charAt(h1) + b64_table.charAt(h2) + b64_table.charAt(h3) + b64_table.charAt(h4); } while (i < data.length); r = data.length % 3; return (r ? enc.slice(0, r - 3) : enc) + "===".slice(r || 3); } function b64_decode(data) { var o1, o2, o3, h1, h2, h3, h4, bits, i = 0, result = []; if (!data) { return data; } data += ""; do { h1 = b64_table.indexOf(data.charAt(i++)); h2 = b64_table.indexOf(data.charAt(i++)); h3 = b64_table.indexOf(data.charAt(i++)); h4 = b64_table.indexOf(data.charAt(i++)); bits = h1 << 18 | h2 << 12 | h3 << 6 | h4; o1 = bits >> 16 & 0xff; o2 = bits >> 8 & 0xff; o3 = bits & 0xff; result.push(o1); if (h3 !== 64) { result.push(o2); if (h4 !== 64) { result.push(o3); } } } while (i < data.length); return result; } function keyCharAt(key, i) { return key.charCodeAt( Math.floor(i % key.length) ); } function xor_encrypt(key, data) { return _.map(data, function(c, i) { return c.charCodeAt(0) ^ keyCharAt(key, i); }); } function xor_decrypt(key, data) { return _.map(data, function(c, i) { return String.fromCharCode( c ^ keyCharAt(key, i) ); }).join(""); } exports.XORCipher = XORCipher; })(this);
Calling function example:
XORCipher.encode("test", "foobar"); XORCipher.decode("test", "EgocFhUX");
这篇关于使用javascript加密,无需任何外部库的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文