随笔 - 384  文章 - 0  评论 - 35  阅读 - 142万

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 对比加密是否正确

 

posted on   小小喽啰  阅读(5041)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示