Python模块学习 ---- hashlib hash加密

  不积跬步,无以至千里;不积小流,何以成江海.

  每天学习一个Python模块,一个月可以了解30个模块,一年可以... ...

  今天看了一个Python中的hashlib及hmac模块,这两个模块用来hash加密。说到加密,首先要了解加密的基本知识:hash加密,对称加密,不对称加密,数字签名等等。相关的知识可以在msdn上查阅:http://msdn.microsoft.com/zh-cn/library/92f9ye3s.aspx

  使用Python中的hashlib来进行hash加密是非学简单的,下面是一段简单代码:

  非常的简单,其实如果说加密一个字符串,根本不用写上面这么多代码,一条语句就可以了:

  hashlib模块还支持其他的hash加密算法,如:sha1, SHA224等等,要了解更多的知识,查一下Python手册。

 

Python hash VS .NEt hash   

  我出身是一个.NET程序员,以前也写过一些.NET下的hash加密类,在.NET中可以使用以下代码来实现MD5加密算法,其实也不是很难: 

  

 附上用.NET编写的常用hash加密算法代码:

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
Python中,生成随机盐并将其应用于SHA-256哈希用于密码安全。首先,你需要导入必要的库,如`hashlib`(处理哈希函数)和`secrets`(提供随机字符串)。以下是基本步骤: 1. 使用`secrets`模块创建一个随机字符串作为盐(salt),它通常是一个固定长度的字符串,例如8字节。 ```python import secrets random_salt = secrets.token_urlsafe(16) # 生成16字节的随机盐 ``` 2. 将用户输入的原始密码和盐一起传递给SHA-256哈希函数,这里使用`hashlib.sha256()`。 ```python def hash_password(password, salt): password_with_salt = password + salt hashed_password = hashlib.sha256(password_with_salt.encode()).hexdigest() return hashed_password ``` 3. 当用户注册时,生成新的哈希值;当登录请求时,先检查提供的密码(用户输入)与存储的哈希值是否匹配。由于你是将随机盐附加到原始密码上再计算哈希,所以需要将输入的密码和盐一起解密。 ```python # 假设你已经保存了加密后的哈希值和对应的盐 stored_hashed_password = 'your_stored_hashed_password' stored_salt = 'your_stored_salt' # 用户提交的密码 input_password = input("Enter your password: ") # 创建待比较的哈希值 input_password_with_salt = input_password + stored_salt input_hashed_password = hashlib.sha256(input_password_with_salt.encode()).hexdigest() # 验证 if input_hashed_password == stored_hashed_password: print("Password is correct.") else: print("Incorrect password.") ```
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值