加密
//
str 是想加密的字符串
// pwd 是key
function encrypt(str, pwd) {
if (pwd == null || pwd.length <= 0 ) {
alert( " Please enter a password with which to encrypt the message. " );
return null ;
}
var prand = "" ;
for ( var i = 0 ; i < pwd.length; i ++ ) {
prand += pwd.charCodeAt(i).toString();
}
var sPos = Math.floor(prand.length / 5 );
var mult = parseInt(prand.charAt(sPos) + prand.charAt(sPos * 2 ) + prand.charAt(sPos * 3 ) + prand.charAt(sPos * 4 ) + prand.charAt(sPos * 5 ));
var incr = Math.ceil(pwd.length / 2 );
var modu = Math.pow( 2 , 31 ) - 1 ;
if (mult < 2 ) {
alert( " Algorithm cannot find a suitable hash. Please choose a different password. Possible considerations are to choose a more complex or longer password. " );
return null ;
}
var salt = Math.round(Math.random() * 1000000000 ) % 100000000 ;
prand += salt;
while (prand.length > 10 ) {
prand = (parseInt(prand.substring( 0 , 10 )) + parseInt(prand.substring( 10 , prand.length))).toString();
}
prand = (mult * prand + incr) % modu;
var enc_chr = "" ;
var enc_str = "" ;
for ( var i = 0 ; i < str.length; i ++ ) {
enc_chr = parseInt(str.charCodeAt(i) ^ Math.floor((prand / modu) * 255 ));
if (enc_chr < 16 ) {
enc_str += " 0 " + enc_chr.toString( 16 );
} else {
enc_str += enc_chr.toString( 16 );
}
prand = (mult * prand + incr) % modu;
}
salt = salt.toString( 16 );
while (salt.length < 8 ) {
salt = " 0 " + salt;
}
enc_str += salt;
return enc_str;
}
// pwd 是key
function encrypt(str, pwd) {
if (pwd == null || pwd.length <= 0 ) {
alert( " Please enter a password with which to encrypt the message. " );
return null ;
}
var prand = "" ;
for ( var i = 0 ; i < pwd.length; i ++ ) {
prand += pwd.charCodeAt(i).toString();
}
var sPos = Math.floor(prand.length / 5 );
var mult = parseInt(prand.charAt(sPos) + prand.charAt(sPos * 2 ) + prand.charAt(sPos * 3 ) + prand.charAt(sPos * 4 ) + prand.charAt(sPos * 5 ));
var incr = Math.ceil(pwd.length / 2 );
var modu = Math.pow( 2 , 31 ) - 1 ;
if (mult < 2 ) {
alert( " Algorithm cannot find a suitable hash. Please choose a different password. Possible considerations are to choose a more complex or longer password. " );
return null ;
}
var salt = Math.round(Math.random() * 1000000000 ) % 100000000 ;
prand += salt;
while (prand.length > 10 ) {
prand = (parseInt(prand.substring( 0 , 10 )) + parseInt(prand.substring( 10 , prand.length))).toString();
}
prand = (mult * prand + incr) % modu;
var enc_chr = "" ;
var enc_str = "" ;
for ( var i = 0 ; i < str.length; i ++ ) {
enc_chr = parseInt(str.charCodeAt(i) ^ Math.floor((prand / modu) * 255 ));
if (enc_chr < 16 ) {
enc_str += " 0 " + enc_chr.toString( 16 );
} else {
enc_str += enc_chr.toString( 16 );
}
prand = (mult * prand + incr) % modu;
}
salt = salt.toString( 16 );
while (salt.length < 8 ) {
salt = " 0 " + salt;
}
enc_str += salt;
return enc_str;
}
解密实现
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a41954a27d6ad96fa2c2cf816e677448.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/1327ab569c1ae82736693a50b8e33378.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/7ff8d92cded7e0ce15e7ca1acc870052.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/717446ca04a6125dc5b6b54e0fa14ab4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/7ff8d92cded7e0ce15e7ca1acc870052.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/717446ca04a6125dc5b6b54e0fa14ab4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/7ff8d92cded7e0ce15e7ca1acc870052.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/717446ca04a6125dc5b6b54e0fa14ab4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/7ff8d92cded7e0ce15e7ca1acc870052.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/717446ca04a6125dc5b6b54e0fa14ab4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/7ff8d92cded7e0ce15e7ca1acc870052.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/717446ca04a6125dc5b6b54e0fa14ab4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/0196c3df5ea9e936f21e9932cca91014.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)