您现在的位置是:网站首页> 编程资料编程资料

Python/JS实现常见加密算法的示例代码_python_

2023-05-25 226人已围观

简介 Python/JS实现常见加密算法的示例代码_python_

前言

本文仅仅介绍了常见的一些JS加密,并记录了JS和Python的实现方式

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

(1)base64编码伪加密

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

(3)安全哈希算法 SHAI

(4)散列消息鉴别码 HMAC

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

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

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

一、编码,加密

1. 什么是编码?

编码是信息从一种形式或格式转换为另一种形式的过程,也称为计算机编程语言的代码简称编码;

2. 什么是加密?

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

二、常见编码

1.Base64

base64是基于64个可打印ascii字符对任意字节数据进行编码算法,base64是一种编码方式而不是加密算法。只是看上去像是加密而已;
Base64使用A–Z,a–z,0–9,+,/ 这64个字符实现对数据进行加密。

2. Base64 - JS实现

3. Base64 - Python实现

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.Unicode

Unicode是计算机中字符集,编码的一项业界标准,被称为统一码,万国码,表现形式一般以"\u"或"&#"开头;

5.Urlencode

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

三、线性散列算法(签名算法)MD5

1.MD5介绍

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

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

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

2. MD5 - JS实现

3. MD5 - Python实现

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 

四、安全哈希算法 SHAI

1. SHAI - JS实现

2. SHAI - Python实现

import hashlib sha1 = hashlib.sha1() str1 = 'i am xz' sha1.update(str1.encode()) str_encode = sha1.hexdigest() print("SHAI加密:", str_encode) # SHAI加密: 0e9f44d42516562396d7b8923542a6a4fc29cd5c 

五、散列消息鉴别码 HMAC

1.HMAC - JS实现

2. HMAC - Python实现

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、DES

1. AES,DES介绍

AES和DES的区别:加密后密文长度的不同,DES加密后密文长度是8的整数倍,AES加密后密文长度是16的整数倍;

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

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

2. AES - JS实现

3. DES - JS实现