IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> 对称加密和非对称加密的区别与使用 -> 正文阅读

[JavaScript知识库]对称加密和非对称加密的区别与使用

主要介绍两种加密方法:对称加密和非对称加密
对称加密:加密和解密过程使用同一个秘钥。加密过程等价于用原文+秘钥得到传输的密文,解密过程等价于密文+秘钥推导出原文。
常见算法有:DES、AES…
优点:加密和解密速度较快,耗时短,适合数据较长时使用;秘钥可自定义。
缺点:无法保证秘钥被安全传递,密文在传输过程中可能被第三方截获,如果秘钥也被截获,则传输的密码信息会被推导出,安全性较低

AES秘钥在线

const CryptoJS = require('crypto-js')
// AES加密
function aesEncrypt(data, keys, ivs) {
	 const res = CryptoJS.AES.encrypt(data, CryptoJS.enc.Utf8.parse(keys), {
	    iv: CryptoJS.enc.Utf8.parse(ivs), // 偏移量,可不加
	    mode: CryptoJS.mode.CBC, // 加密模式
	    padding: CryptoJS.pad.Pkcs7, // 填充方式
	 })
	 return res.toString()
}

// AES解密
function desDecrypt(data, keys, ivs) {
	const res = CryptoJS.AES.decrypt(data, CryptoJS.enc.Utf8.parse(keys), {
	    iv: CryptoJS.enc.Utf8.parse(ivs), // 偏移量,可不加
	    mode: CryptoJS.mode.CBC, // 解密模式
	    padding: CryptoJS.pad.Pkcs7, // 填充方式
	 })
	 return res.toString()
}

非对称加密:加密和解密过程使用两个秘钥,一般使用公钥进行加密,私钥进行解密。
常见算法有:RSA、背包算法、ECC…
优点:使用一对秘钥,公钥用来加密,私钥用来解密,不需要像对称加密那样同步秘钥,而且只能通过私钥来推导公钥,反之则不能,安全性较高
缺点:加密和解密花费的时间较长、速度较慢,适合对少量数据的使用。

RSA秘钥在线生成

import JSEncrypt from 'jsencrypt'
const pubKey = 'xxx' // 公钥
const priKey = 'xxx' // 秘钥
// RSA加密
function rsaEncrypt(data){
	const encrypt = new JSEncrypt()  // 创建加密对象实例
	encrypt.setPublicKey(pubKey) // 设置公钥
	return encrypt.encrypt(data) // 对内容加密 
}

// RSA解密
function rsaDecrypt(data){
	const decrypt = new JSEncrypt()  // 创建加密对象实例
	decrypt.setPrivateKey(priKey) // 设置秘钥
	return decrypt.decrypt(data) // 对加密内容解密 
}

非对称加密和对称加密的区别
前端利用jsencrypt.js进行RSA加密

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-04-04 12:02:06  更:2022-04-04 12:05:32 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 2:44:31-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码