SQL 中的MD5,SHA256、sm3加密
工作中经常遇到敏感数据的交互,这就需要到加密,本次就记录一下常见的几种加密方式
一、MySQL
SHA256
SELECT SHA2("123",256)
查询结果
MD5
select md5("123")
查询结果
二、HIVE
SHA256
SELECT SHA2("123",256)
查询结果
MD5
select md5("123")
查询结果
函数和结果都与MYSQL一致
三、Python
SHA256
import hashlib # 1、待加密的字符串 str = '123' # 2、实例化一个sha256对象 sha256 = hashlib.sha256() # 3、调用update方法进行加密 sha256.update(str.encode('utf-8')) # 4、调用hexdigest方法,获取加密结果 print(sha256.hexdigest())
封装成函数
import hashlib def sha256_jiami(x): ''' Parameters ---------- x : string 需要加密的字符串. Returns ------- 字符窜加密后的字符 ''' sha256 = hashlib.sha256() sha256.update(x.encode('utf-8')) return sha256.hexdigest() sha256_jiami('123')
MD5
import hashlib need_md5='123' md = hashlib.md5(need_md5.encode()) print(md.hexdigest()) # 单纯的MD5加密
封装成函数
import hashlib def md5_jiami(x): ''' Parameters ---------- x : string 需要加密的字符串 Returns ------- 字符串加密后的字符 ''' md = hashlib.md5(x.encode()) return md.hexdigest() # 单纯的MD5加密 md5_jiami('123') #'202cb962ac59075b964b07152d234b70'
sm3加密
MySQL无法进行sm3加密,需要Python工具
import hashlib def sm36_jiami(x): ''' Parameters ---------- x : string 需要加密的字符串. Returns ------- 字符窜加密后的字符 ''' # 创建SM3对象 sm3 = hashlib.new('sm3') sm3.update(x.encode('utf-8')) return sm3.hexdigest() sm36_jiami('Hello, World!')
可与config.net.cn/tools/SM3.html 对比加密是否正确