JavaScript中常见的编码和加密方法有哪些具体实现细节?

2026-04-03 06:361阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计899个文字,预计阅读时间需要4分钟。

JavaScript中常见的编码和加密方法有哪些具体实现细节?

目录:基础元素 + AES 工作模式区分 + AES 加密流程 + 常用加密库(JS-AES、base64、SHA256、RSA)+ AES 特点与特性 + Ascii 码 + DES + base64

目录
  • base64
  • Md5
  • AES
  • AES的三要素
  • AES工作模式区别
  • AES的加密流程
  • JS-AES、base64、SHA256、RSA等加解密库
  • AES的特点、特征
  • Ascii码
  • DES

base64

#特征:结尾可能有"=="号 #编码 # 想将字符串转编码成base64,要先将字符串转换成二进制数据 url = "www.cnblogs.com/songzhixue/" bytes_url = url.encode("utf-8") str_url = base64.b64encode(bytes_url) # 被编码的参数必须是二进制数据 print(str_url) b'aHR0cHM6Ly93d3cuY25ibG9ncy5jb20vc29uZ3poaXh1ZS8=' #解码 # 将base64解码成字符串 import base64 url = "aHR0cHM6Ly93d3cuY25ibG9ncy5jb20vc29uZ3poaXh1ZS8=" str_url = base64.b64decode(url).decode("utf-8") print(str_url) 'www.cnblogs.com/songzhixue/'

Md5

#注意:md5是哈希,不是加密 #特征:32位 #1.编码 md = hashlib.md5() # 加密,不可逆 md.update('hello'.encode('utf-8')) # 往对象里传数据加密 ,update只能接受bytes类型 md.update(b'hello') print(md.hexdigest()) 结果:23b431acfeb41e15d466d75de822307c #编码加盐 #2.加盐 :自己添加的东西和客户的真密码一起加密,自己添加的东西可以是动态的 md = hashlib.md5() md.update(b'yan.com') md.update(b'hello') # 加密 print(md.hexdigest()) # 获取密文

AES

特征:对称加密,加密解密用的是同样的密钥。对称加密是最快速、最简单的一种加密方式

对称加密:适合经常发送数据的场合

非对称加密:加密和解密用的密钥是不同的,通常加密解密的速度比较慢,适合偶尔发送数据的场合。优点是密钥传输方便。

AES的三要素

密钥:128、192、256

填充:
NoPadding
PKCS7Padding
ZeroPadding
AnsiX923
lso10126
lso97971

工作模式:
CBC、ECB、CTR、CFB、OFB

AES工作模式区别

工作模式:
CBC、ECB、CTR、CFB、OFB

ECB模式:

1、简单

2、有利于计算

3、相同的明文块经过加密会变成相同的密文块,因此安全性较差

CBC模式:

1、无法并行计算,性能上不如ECB

2、引入初始化向量IV,增加复杂度。

3、安全性高

JavaScript中常见的编码和加密方法有哪些具体实现细节?

AES的加密流程

1、把明文按照128bit拆分成若干个明文块

2、按照选择的填充模式来填充最后一个明文块

3、每个明文块利用AES加密器和密钥,加密成密文块

JS-AES、base64、SHA256、RSA等加解密库

#利用nodejs中的crypto-js库 var CryptoJS = require("crypto-js") CryptoJS.AES.encrypt(text,CryptoJS.enc.UTF8.parse(key),data={})

AES的特点、特征

1、有iv的是特征的是CBC工作模式

2、mode和padding标示的加密模式、填充方式

iv:初始向量

mode:工作模式

padding:填充方式

Ascii码

Ascii码是一种特定的编码方式,流行于欧洲国家,表达128常见的字符与操作符,表达力有限

DES

DES全称为Data Encryption Standard,即数据加密标准,是一种使用密钥加密的块算法,1977年被美国联邦政府的国家标准局确定为联邦资料处理标准(FIPS),并授权在非密级政府通信中使用,随后该算法在国际上广泛流传开来。

需要注意的是,在某些文献中,作为算法的DES称为数据加密算法(Data Encryption Algorithm,DEA),已与作为标准的DES区分开来。

以上就是JS中常见编码及加密方式解析的详细内容,更多关于JS编码及加密方式的资料请关注自由互联其它相关文章!

本文共计899个文字,预计阅读时间需要4分钟。

JavaScript中常见的编码和加密方法有哪些具体实现细节?

目录:基础元素 + AES 工作模式区分 + AES 加密流程 + 常用加密库(JS-AES、base64、SHA256、RSA)+ AES 特点与特性 + Ascii 码 + DES + base64

目录
  • base64
  • Md5
  • AES
  • AES的三要素
  • AES工作模式区别
  • AES的加密流程
  • JS-AES、base64、SHA256、RSA等加解密库
  • AES的特点、特征
  • Ascii码
  • DES

base64

#特征:结尾可能有"=="号 #编码 # 想将字符串转编码成base64,要先将字符串转换成二进制数据 url = "www.cnblogs.com/songzhixue/" bytes_url = url.encode("utf-8") str_url = base64.b64encode(bytes_url) # 被编码的参数必须是二进制数据 print(str_url) b'aHR0cHM6Ly93d3cuY25ibG9ncy5jb20vc29uZ3poaXh1ZS8=' #解码 # 将base64解码成字符串 import base64 url = "aHR0cHM6Ly93d3cuY25ibG9ncy5jb20vc29uZ3poaXh1ZS8=" str_url = base64.b64decode(url).decode("utf-8") print(str_url) 'www.cnblogs.com/songzhixue/'

Md5

#注意:md5是哈希,不是加密 #特征:32位 #1.编码 md = hashlib.md5() # 加密,不可逆 md.update('hello'.encode('utf-8')) # 往对象里传数据加密 ,update只能接受bytes类型 md.update(b'hello') print(md.hexdigest()) 结果:23b431acfeb41e15d466d75de822307c #编码加盐 #2.加盐 :自己添加的东西和客户的真密码一起加密,自己添加的东西可以是动态的 md = hashlib.md5() md.update(b'yan.com') md.update(b'hello') # 加密 print(md.hexdigest()) # 获取密文

AES

特征:对称加密,加密解密用的是同样的密钥。对称加密是最快速、最简单的一种加密方式

对称加密:适合经常发送数据的场合

非对称加密:加密和解密用的密钥是不同的,通常加密解密的速度比较慢,适合偶尔发送数据的场合。优点是密钥传输方便。

AES的三要素

密钥:128、192、256

填充:
NoPadding
PKCS7Padding
ZeroPadding
AnsiX923
lso10126
lso97971

工作模式:
CBC、ECB、CTR、CFB、OFB

AES工作模式区别

工作模式:
CBC、ECB、CTR、CFB、OFB

ECB模式:

1、简单

2、有利于计算

3、相同的明文块经过加密会变成相同的密文块,因此安全性较差

CBC模式:

1、无法并行计算,性能上不如ECB

2、引入初始化向量IV,增加复杂度。

3、安全性高

JavaScript中常见的编码和加密方法有哪些具体实现细节?

AES的加密流程

1、把明文按照128bit拆分成若干个明文块

2、按照选择的填充模式来填充最后一个明文块

3、每个明文块利用AES加密器和密钥,加密成密文块

JS-AES、base64、SHA256、RSA等加解密库

#利用nodejs中的crypto-js库 var CryptoJS = require("crypto-js") CryptoJS.AES.encrypt(text,CryptoJS.enc.UTF8.parse(key),data={})

AES的特点、特征

1、有iv的是特征的是CBC工作模式

2、mode和padding标示的加密模式、填充方式

iv:初始向量

mode:工作模式

padding:填充方式

Ascii码

Ascii码是一种特定的编码方式,流行于欧洲国家,表达128常见的字符与操作符,表达力有限

DES

DES全称为Data Encryption Standard,即数据加密标准,是一种使用密钥加密的块算法,1977年被美国联邦政府的国家标准局确定为联邦资料处理标准(FIPS),并授权在非密级政府通信中使用,随后该算法在国际上广泛流传开来。

需要注意的是,在某些文献中,作为算法的DES称为数据加密算法(Data Encryption Algorithm,DEA),已与作为标准的DES区分开来。

以上就是JS中常见编码及加密方式解析的详细内容,更多关于JS编码及加密方式的资料请关注自由互联其它相关文章!