前端常用的几种加密与解密
这里写自定义目录标题
- 前端常用的几种加密与解密
- 第一种就是base64格式的加密与解密
- 第二种MD5加密
- 第三种加密RSA用公钥私钥加密解密
- 第四种加密sha1
前端常用的几种加密与解密
第一种就是base64格式的加密与解密
window.atob() 与window.btoa()可以实现对base64格式的数据进行解码和编码,其兼容性是主流浏览器,IE10及以上。
window.atob(encodedStr)只可以解码用btoa方法编码的字符串。
window.btoa():将ascii字符串或二进制数据转换成一个base64编码过的字符串,但该方法不能直接作用于Unicode字符串
当遇到中文时,需要先对中文转码否则会乱码。
var str = btoa(encodeURIComponent("中文汉字"));
//还可以解码回来
decodeURIComponent(atob(enc)) => 中文汉字
第二种MD5加密
首先引入相关js,对要加密的内容直接加密
前端在向后台发起登录请求之前,先请求后台获取公钥的方法
var publicKey = null;$.ajax({url: "xxx",type: "post",dataType: "text",success: function(data) {var encrypt = new JSEncrypt();if(data){publicKey = data;};}});
通过公钥对用户名和密码加密
encrypt.setPublicKey(publicKey);var username;
var password;
username = encrypt.encrypt(vm.username.trim());
password = encrypt.encrypt(vm.password.trim());
接下来就是用加密后的用户名密码请求后台,用户名密码传输时千万不要字符串拼接方式传输
$.ajax({
type: "POST",url: "xxxxxx",data: {"username":username,"password":password,
},dataType: "json",success: function (result) {if (result.code == 0) {//登录成功parent.location.href = 'index.html';} else {vm.error = true;vm.errorMsg = result.msg;vm.refreshCode();}}});
第四种加密sha1
引入配置文件
var sha = hex_sha1('mima123465');
console.log(sha);
sha1加密是一种不可逆的加密方式,将明文转换成一段散列值(摘要),将报文摘要加密后与明文一起传送给接受方,接受方将接受的明文产生新的报文摘要与发送方的发来报文摘要解密比较,比较结果一致表示明文未被改动,如果不一致表示明文已被篡改。
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
