JS常见加密 AES、DES、RSA、MD5、SHAI、HMAC、Base64(编码)

2025-07-26 21:55:49

JS常见加密 AES、DES、RSA、MD5、SHAI、HMAC、Base64 - Python/JS实现

文章目录JS常见加密 AES、DES、RSA、MD5、SHAI、HMAC、Base64 - Python/JS实现前言一、编码,加密?1. 什么是编码?2. 什么是加密?二、常见编码1.Base642. Base64 - JS实现3. Base64 - Python实现4.Unicode5.Urlencode三、线性散列算法(签名算法)MD51.MD5介绍2. MD5 - JS实现3. MD5 - Python实现四、安全哈希算法 SHAI1. SHAI - JS实现2. SHAI - Python实现五、散列消息鉴别码 HMAC1.HMAC - JS实现2. HMAC - Python实现六、对称加密 AES、DES1. AES,DES介绍2. AES - JS实现3. DES - JS实现4. DES - Python实现七、非对称加密RSA1. RSA介绍2. JS-代码示例总结前言本文仅仅介绍了常见的一些JS加密,并记录了JS和Python的实现方式

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

(1)base64编码伪加密

(2)线性散列算法(签名算法)MD5

(3)安全哈希算法 SHAI

(4)散列消息鉴别码 HMAC

(5)对称性加密算法 AES,DES

(6)非对称性加密算法 RSA

提示:以下是本篇文章正文内容,下面案例可供参考

一、编码,加密?1. 什么是编码?编码是信息从一种形式或格式转换为另一种形式的过程,也称为计算机编程语言的代码简称编码;

2. 什么是加密?加密,是以某种特殊的算法改变原有的信息数据,使得未授权的用户即使获得了已加密的信息,但因不知解密的方法,仍然无法了解信息的内容。

二、常见编码1.Base64base64是基于64个可打印ascii字符对任意字节数据进行编码算法,base64是一种编码方式而不是加密算法。只是看上去像是加密而已;

Base64使用A–Z,a–z,0–9,+,/ 这64个字符实现对数据进行加密。

2. Base64 - JS实现代码语言:javascript代码运行次数:0运行复制

3. Base64 - Python实现代码语言:javascript代码运行次数:0运行复制import base64

str1 = 'i am xz'

str_encode = base64.b64encode(str1.encode())

print("Base64编码:", str_encode)

str_decode = base64.b64decode(str_encode)

print("Base64解码:", str_decode) 4.UnicodeUnicode是计算机中字符集,编码的一项业界标准,被称为统一码,万国码,表现形式一般以"\u"或"&#"开头;

5.Urlencodeurlencode是URL编码,也称作百分号编码,用于把url的符号进行转换;

三、线性散列算法(签名算法)MD51.MD5介绍MD5是一种被广泛使用的线性散列算法,可以产生出一个128位(16字节)的散列值(hash value)。

特征:MD5加密之后产生的是一个固定长度(32位或16位)的数据,常规讲MD5是不存在解密的。

使用场景:注册账号时的密码一般都是用的MD5加密。

2. MD5 - JS实现代码语言:javascript代码运行次数:0运行复制

3. MD5 - Python实现代码语言:javascript代码运行次数:0运行复制import hashlib

str1 = 'i am xz'

m = hashlib.md5()

m.update(str1.encode('utf-8'))

str_encode = m.hexdigest()

print("MD5加密:", str_encode) # MD5加密: f0404c7b9bff0bde8d6df8b64759960f 四、安全哈希算法 SHAI1. SHAI - JS实现代码语言:javascript代码运行次数:0运行复制

2. SHAI - Python实现代码语言:javascript代码运行次数:0运行复制import hashlib

sha1 = hashlib.sha1()

str1 = 'i am xz'

sha1.update(str1.encode())

str_encode = sha1.hexdigest()

print("SHAI加密:", str_encode) # SHAI加密: 0e9f44d42516562396d7b8923542a6a4fc29cd5c 五、散列消息鉴别码 HMAC1.HMAC - JS实现代码语言:javascript代码运行次数:0运行复制

2. HMAC - Python实现代码语言:javascript代码运行次数:0运行复制import hmac

import hashlib

key = 'key'

str1 = 'i am xz'

mac = hmac.new(key=key.encode(), msg=str1.encode(), digestmod=hashlib.sha256)

mac.digest()

str_encode = mac.hexdigest()

print("HMAC加密:", str_encode) # HMAC加密: e5137adac855050a62c7434b01bb97229f9e1a8fd5b45364e4035d28885b0852 六、对称加密 AES、DES1. AES,DES介绍AES和DES的区别:加密后密文长度的不同,DES加密后密文长度是8的整数倍,AES加密后密文长度是16的整数倍;

特征:对称加密特征,加密和解密需要相同的密钥DES;

应用场景:企业级开发使用DES足够安全,要求高使用AES;

2. AES - JS实现代码语言:javascript代码运行次数:0运行复制

3. DES - JS实现代码语言:javascript代码运行次数:0运行复制

4. DES - Python实现pip 安装: pip intall pyDes -i https://pypi.tuna.tsinghua.edu.cn/simple

代码语言:javascript代码运行次数:0运行复制import binascii

from pyDes import des, CBC, PAD_PKCS5

deskey = '12345678'

message = 'i am xz'

des_encrypt = des(key=deskey, mode=CBC, IV=deskey, padmode=PAD_PKCS5)

str_encode = binascii.b2a_hex(des_encrypt.encrypt(message, padmode=PAD_PKCS5)) # .decode('utf-8')

print("DES加密:", str_encode) # DES加密: b'b8a5ac525c77aad0'

str_decrypt = des(key=deskey, mode=CBC, IV=deskey, padmode=PAD_PKCS5)

str_decode = str_decrypt.decrypt(binascii.a2b_hex(str_encode), padmode=PAD_PKCS5)

print("DES解密:", str_decode) # DES解密: b'i am xz' 七、非对称加密RSA1. RSA介绍特征:加密使用公钥,解密使用私钥,公钥(可以公开暴露出来只能加密),私钥(必须隐藏),成对出现, 私匙是通过公匙计算生成的,不能盲目随机生成,可根据setPublicKey,setPrivateKey 确定是否为非对称RSA加密;

公私匙在线生成:http://web.chacuo.net/netrsakeypair

应用场景:公开密钥加密和电子商业中RSA被广泛使用,支付密码会通过RSA加密;

2. JS-代码示例代码语言:javascript代码运行次数:0运行复制

总结例如:以上就是今天要讲的内容,本文仅仅简单介绍了JS的常见加密以及JS和Python(部分)的实现,后续有常用的JS加密会在这篇博客中持续更新;

Copyright © 2022 世界杯预选赛欧洲区_世界杯在哪个国家举行 - kd896.com All Rights Reserved.