前端js 加密解密方式(js数据加密服务器解密)

2023-03-05 6:53:40 密码用途 思思

一、base64加密

使用JS函数的window.btoa()和 window.atob(),分别是编码和解码

二、编码和解码字符串

使用JS函数的escape()和unescape(),分别是编码和解码

三、AES加密解密

四、RSA加密解密

前端js几种加密/解密方法

方法汇总:

项目中用了crypto-js DES加密解密 前端用下面方法加密 后台用java的des解密

crypto-js AES需要前端来处理加密解密

JS 使用 SHA1 加密示例

用jQuery.md5.js加密密码后后台怎么解密?

MD5不是加密算法,它是Hash算法,所以它不可逆,也没法还原成原文。

你可以用base64、异或或者aes des等加密算法去实现。

1、base64加密

在页面中引入base64.js文件,调用方法为:

?

123456789101112131415161718

!DOCTYPE HTMLhtmlheadmeta charset="utf-8"titlebase64加密/titlescript type="text/javascript" src="base64.js"/scriptscript type="text/javascript"  var b = new Base64();  var str = b.encode("admin:admin");  alert("base64 encode:" + str);//解密  str = b.decode(str);  alert("base64 decode:" + str);/script/headbody/body/html

2、md5加密

在页面中引用md5.js文件,调用方法为

?

1234567891011121314

!DOCTYPE HTMLhtmlheadmeta charset="utf-8"titlemd5加密/titlescript type="text/ecmascript" src="md5.js"/scriptscript type="text/javascript" var hash = hex_md5("123dafd"); alert(hash)/script/headbody/body/html

3、sha1加密

据说这是最安全的加密

页面中引入sha1.js,调用方法为

?

1234567891011121314

!DOCTYPE HTMLhtmlheadmeta charset="utf-8"titlesha1加密/titlescript type="text/ecmascript" src="sha1.js"/scriptscript type="text/javascript" var sha = hex_sha1('mima123465') alert(sha)/script/headbody/body/html

一下为js们的源代码

base64.js:

?

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106

/**** Base64 encode / decode** @author haitao.tu* @date 2010-04-26* @email tuhaitao@foxmail.com**/function Base64() { // private property _keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; // public method for encoding this.encode = function (input) {  var output = "";  var chr1, chr2, chr3, enc1, enc2, enc3, enc4;  var i = 0;  input = _utf8_encode(input);  while (i input.length) {   chr1 = input.charCodeAt(i++);   chr2 = input.charCodeAt(i++);   chr3 = input.charCodeAt(i++);   enc1 = chr1 2;   enc2 = ((chr1 3) 4) | (chr2 4);   enc3 = ((chr2 15) 2) | (chr3 6);   enc4 = chr3 63;   if (isNaN(chr2)) {    enc3 = enc4 = 64;   } else if (isNaN(chr3)) {    enc4 = 64;   }   output = output +   _keyStr.charAt(enc1) + _keyStr.charAt(enc2) +   _keyStr.charAt(enc3) + _keyStr.charAt(enc4);  }  return output; } // public method for decoding this.decode = function (input) {  var output = "";  var chr1, chr2, chr3;  var enc1, enc2, enc3, enc4;  var i = 0;  input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");  while (i input.length) {   enc1 = _keyStr.indexOf(input.charAt(i++));   enc2 = _keyStr.indexOf(input.charAt(i++));   enc3 = _keyStr.indexOf(input.charAt(i++));   enc4 = _keyStr.indexOf(input.charAt(i++));   chr1 = (enc1 2) | (enc2 4);   chr2 = ((enc2 15) 4) | (enc3 2);   chr3 = ((enc3 3) 6) | enc4;   output = output + String.fromCharCode(chr1);   if (enc3 != 64) {    output = output + String.fromCharCode(chr2);   }   if (enc4 != 64) {    output = output + String.fromCharCode(chr3);   }  }  output = _utf8_decode(output);  return output; } // private method for UTF-8 encoding _utf8_encode = function (string) {  string = string.replace(/\r\n/g,"\n");  var utftext = "";  for (var n = 0; n string.length; n++) {   var c = string.charCodeAt(n);   if (c 128) {    utftext += String.fromCharCode(c);   } else if((c 127) (c 2048)) {    utftext += String.fromCharCode((c 6) | 192);    utftext += String.fromCharCode((c 63) | 128);   } else {    utftext += String.fromCharCode((c 12) | 224);    utftext += String.fromCharCode(((c 6) 63) | 128);    utftext += String.fromCharCode((c 63) | 128);   }  }  return utftext; } // private method for UTF-8 decoding _utf8_decode = function (utftext) {  var string = "";  var i = 0;  var c = c1 = c2 = 0;  while ( i utftext.length ) {   c = utftext.charCodeAt(i);   if (c 128) {    string += String.fromCharCode(c);    i++;   } else if((c 191) (c 224)) {    c2 = utftext.charCodeAt(i+1);    string += String.fromCharCode(((c 31) 6) | (c2 63));    i += 2;   } else {    c2 = utftext.charCodeAt(i+1);    c3 = utftext.charCodeAt(i+2);    string += String.fromCharCode(((c 15) 12) | ((c2 63) 6) | (c3 63));    i += 3;   }  }  return string; }}

js中常见的数据加密与解密的方法

加密在我们前端的开发中也是经常遇见的。本文只把我们常用的加密方法进行总结。不去纠结加密的具体实现方式(密码学,太庞大了)。

常见的加密算法基本分为这几类,

RSA加密:RSA加密算法是一种非对称加密算法。在公开密钥加密和电子商业中RSA被广泛使用。(这才是正经的加密算法)

非对称加密算法:非对称加密算法需要两个密钥:公开密钥(publickey:简称公钥)和私有密钥(privatekey:简称私钥)。公钥与私钥是一对,如果用公钥对数据进行加密,只有用对应的私钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。

DES全称为Data Encryption Standard,即数据加密标准,是一种使用密钥加密的块算法

DES算法的入口参数有三个:Key、Data、Mode。其中Key为7个字节共56位,是DES算法的工作密钥;Data为8个字节64位,是要被加密或被解密的数据;Mode为DES的工作方式,有两种:加密或解密。

AES这个标准用来替代原先的DES

DES/AES我们合并在一起介绍其用法和特点

Base64是一种用64个字符来表示任意二进制数据的方法。base64是一种编码方式而不是加密算法。只是看上去像是加密而已(吓唬人)。

如何前台JS进行加密,后台java进行解密?

很不幸,就以我的知识范围,纯粹的JS无法做到百分百的安全。理由如下:

现在的浏览器端可以直接看到你的JS代码,JS代码都是明文的。尽管你可以压缩,混淆,但是也是加大hack的难度,无法彻底对浏览器不可见。既然你的代码都被看见了,那么Hash,加密都是扯淡了。

对内容加密可以使用HTTPS,这点不假。但是这仅仅能够抵抗抓包工具,但是通过浏览器的开发工具,仍然能够看到你的请求内容,格式。那么就可以按照你的格式伪造请求。我们就可以通过伪造请求修改某社交网站的用户设置。

结论:纯粹JS看起来无法满足你的需求,但是可以使用object标签,自己开发控件进行数据加密,这点事可以的。但是这就超出了JS的范围。并且Object的这个话题太大,我没办法给你展开,你自己研究下吧

下面data在的数据,经JS加密后的字符串,求解密方法,在线等

1、如果是通过js加密和解密的。你提供的代码太少,看不出加密和解密过程。

2、data这一长串字符,有可能是传到服务器端,通过动态文件来加密或者解密的。