美文网首页代码改变世界IT技术篇
JS 使用加密工具对数据进行加密解密

JS 使用加密工具对数据进行加密解密

作者: 燕自浩 | 来源:发表于2020-06-13 15:02 被阅读0次

前言:在数据交互的过程中难免会使用数据加密的方式进行数据传输,其主要的数据传输时使用加密的比较多的是登录模块,用户的密码等重要信息一旦暴漏将会给用户带来不可估量的损失,还有就是将一些信息存储到cookie,localStorage,sessionStorage进行数据存储的时候有的信息不能直接进行存储所以要将数据进行加密后再进行存储,这样一来就会大大提高用户信息的安全性,一下介绍几种加密方法并在学习过程中会持续补充

1. RSA加密解密

使用RSA需要前后端统一一个公钥或者私钥一下拿个栗子来说明问题

//公钥
var PUBLIC_KEY = 'MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC8HMr2CBpoZPm3t9tCVlrKtTmI4jNJc7/HhxjIEiDjC8czP4PV+44LjXvLYcSV0fwi6nE4LH2c5PBPEnPfqp0g8TZeX+bYGvd70cXee9d8wHgBqi4k0J0X33c0ZnW7JruftPyvJo9OelYSofBXQTcwI+3uIl/YvrgQRv6A5mW01QIDAQAB';
//私钥
var PRIVATE_KEY = 'MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBALwcyvYIGmhk+be320JWWsq1OYjiM0lzv8eHGMgSIOMLxzM/g9X7jguNe8thxJXR/CLqcTgsfZzk8E8Sc9+qnSDxNl5f5tga93vRxd5713zAeAGqLiTQnRffdzRmdbsmu5+0/K8mj056VhKh8FdBNzAj7e4iX9i+uBBG/oDmZbTVAgMBAAECgYEAmgNU5NTDkj9B+Pnt6UU8doSjw3+3j+bV2K2yS3QUOvAUus/Ax7x6ktjWxzCXvDY9IfUil2RNv9vtKEAqYLCWjc+lf8PV/yH1b7NEgyeAPBXtAJRoOnmYL2bdPW92kP9KgxJruF6Dz/C5AmMOncsvq8ABD+9Darn4p8dwj2ZC4O0CQQDf/AHmZsQokEItfCy4mHS9UbxbfIhEUv1ApPh/+Sr7NkJkHWYCtBQo+8jKO6zurAZQgWBPD1XX2UE4R+VIiZazAkEA1wAqtMvGhccyRZr+6kpkpDIa8+9jOE+nGUzqTDvgCID6as8AzOONFVVK6m/UUqkhcJ8Qu1pF36BGojy5BX2KVwJBAJSFpbji0hXXupowqfLp3RcgmNbNWAp+QUJZYhJx5cdYbmO2fssyH+AhPT6knYJR/YnqkDM8hv6vKCkqu2YDHjMCQAOA8TE5EOclM+CGghj3VWSHnIDVKdzFD4gOBNNxNlltIKeU8AJmwunSFgJ0CBXAw9a+ANvMwM7AIeaK7sj0HskCQAvxfDCq7gaNx+pfu0FHG8Gix08A/A6foggBl1fVu+L9sr9ZuOQ3HbXnl28F9ewuB9xdjnLUDjp7W7U0pB+vKoQ=';
var encrypt = new JSEncrypt();
//  使用私钥加密
encrypt.setPrivateKey(PRIVATE_KEY);
// 使用公钥加密
encrypt.setPublicKey(PUBLIC_KEY); 
var str = {
"uid":"1223334",
"pwd":"asd"
}
// str是要加密的信息这里是一个对象也可以是一个单纯的字符串
var encrypted = encrypt.encrypt(JSON.stringify(str));
console.log('加密前数据:%o', str);
console.log('加密后数据:%o', encrypted);
var decrypt = new JSEncrypt();
// 使用公钥解密
decrypt.setPublicKey(PUBLIC_KEY); 
// 使用私钥解密
decrypt.setPrivateKey(PRIVATE_KEY); 
// 输入解密的结果
var uncrypted = decrypt.decrypt(encrypted);
console.log('解密后数据:%o', uncrypted);
2. md5加密解密

js中使用
点击此处下载
引入

<script src="js/md5.js" type="text/javascript"></script>

使用

const str = ''123456
const newStr = hex_md5(str);
console.log(newStr) // 即为加密后的数据

项目中使用
a. 安装
cnpm install --save js-md5npm install --save js-md5
b. 引入
import md5 from 'js-md5'
c. 使用

md5(''); // d41d8cd98f00b204e9800998ecf8427e
md5('The quick brown fox jumps over the lazy dog'); // 9e107d9d372bb6826bd81d3542a419d6
md5('The quick brown fox jumps over the lazy dog.'); // e4d909c290d0fb1ca068ffaddf22cbd0
// It also supports UTF-8 encoding
md5('中文'); // a7bac2239fcdcb3a067903d8077c4a07 
// It also supports byte `Array`, `Uint8Array`, `ArrayBuffer`
md5([]); // d41d8cd98f00b204e9800998ecf8427e
md5(new Uint8Array([])); // d41d8cd98f00b204e9800998ecf8427e
// Different output
md5(''); // d41d8cd98f00b204e9800998ecf8427e
md5.hex(''); // d41d8cd98f00b204e9800998ecf8427e
md5.array(''); // [212, 29, 140, 217, 143, 0, 178, 4, 233, 128, 9, 152, 236, 248, 66, 126]
md5.digest(''); // [212, 29, 140, 217, 143, 0, 178, 4, 233, 128, 9, 152, 236, 248, 66, 126]
md5.arrayBuffer(''); // ArrayBuffer
md5.buffer(''); // ArrayBuffer, deprecated, This maybe confuse with Buffer in node.js. Please use arrayBuffer instead.
3. base64加密解密

a. 安装
cnpm install --save js-base64npm install --save js-base64
b. 引入
let Base64 = require('js-base64').Base64;
c. 使用

Base64.encode('dankogai');  // ZGFua29nYWk=
Base64.encode('小飼弾');    // 5bCP6aO85by+
Base64.encodeURI('小飼弾'); // 5bCP6aO85by-

Base64.decode('ZGFua29nYWk=');  // dankogai
Base64.decode('5bCP6aO85by+');  // 小飼弾
// note .decodeURI() is unnecessary since it accepts both flavors
Base64.decode('5bCP6aO85by-');  // 小飼弾

学习过程中如有发现更好用的加密解密方法会继续更新欢迎提出宝贵的建议

相关文章

  • openssl生成RSA格式的公私钥,并转为pkcs8格式

    先简单介绍一下RSA。 加密、解密:使用公钥对数据进行加密,通过私钥对加密后的数据解密。 加签、解签:使用私钥对数...

  • JAVA加解密11-对称加密算法-DES以及DESede算法

    一、简述对称加密算法就是能将数据加解密。加密的时候用密钥对数据进行加密,解密的时候使用同样的密钥对数据进行解密。D...

  • iOS RSA加签 验签 与Java同步 pkcs8 pkcs1

    先简单介绍一下RSA。1.加密、解密:使用公钥对数据进行加密,通过私钥对加密后的数据解密。2.加签、解签:使用私钥...

  • JS 使用加密工具对数据进行加密解密

    前言:在数据交互的过程中难免会使用数据加密的方式进行数据传输,其主要的数据传输时使用加密的比较多的是登录模块,用户...

  • React Native AES加密

    1). 加密库--aes-js 2). 创建加密工具类 3). RN中对Storage数据存取进行加密

  • 怎么在ios中应用“RSA的私钥加密或公钥加密算法”呢?

    RSA基本原理 RSA使用"秘匙对"对数据进行加密解密.在加密解密数据前,需要先生成公钥(public key)和...

  • 信息安全(1)之对称加密

    对称加密是使用相同的密钥对数据进行加密和解密。对称加密由于其安全性高和加解密速度快,被用于数据的加密。 场景 Al...

  • AES+RSA加密联合使用

    AES+RSA加密联合使用 使用原因: 因为加密解密效率的问题 使用方式前端:前端对需要加密的数据进性AES加密,...

  • 非对称加密与https

    非对称加密 非对称加密可以对任何二进制的数据进行加密。原理:使用公钥对数据加密得到密文,使用私钥对数据解密得到原数...

  • 加密

    对称加密: 原理:使用秘钥和加密算法对数据进行转换,得到的无意义数据即为密文;使用密钥和解密算法对密文进行逆向转换...

网友评论

    本文标题:JS 使用加密工具对数据进行加密解密

    本文链接:https://www.haomeiwen.com/subject/wxgatktx.html