MD5加密算法(python)

MD5加密算法属于单向加密算法。

单向加密算法是中在加密过程中不适应秘钥,将数据加密处理成加密数据,加密数据无法被解密。因为无法通过加密数据反向得到原来的内容,单向加密算法又被称为不可逆加密算法。单向加密算法一般使用哈希算法来生成密文,又称为哈希加密算法。

由于MD5具有不可逆解密的特性,它被广泛应用于密码验证和数据完整性的验证。在使用时,一般将新注册用户的密码通过MD5加密后存储到数据库中,当用户登录时,通过验证MD5来检查用户输入密码的正确性。

用户注册登录时,会输入密码,后台对于用户密码存储的保护通常是通过对密码进行加密实现的,网站将用户密码加密后的密文存储在数据库中,在用户登录时,将输入的密码进行加密,然后与数据库中存放的密码密文进行比对,以验证用户输入密码是否正确。

#!/usr/bin/python
import hashlib
class User:
	def __init__(self,username,password):
		self.username=username
		md5=hashlib.md5(password.encode())
		self.password=md5.hexdigest() #hexdigest是十六进制数据字符串值
		
	def check_password(self,password): #验证密码是否正确
		md5=hashlib.md5(password.encode())
		if md5.hexdigest()==self.password:
			return password+":密码正确"
		else:
			return password+":密码错误"
		
user = User("zhangsan","123456789")
print("加密后的密码是:",user.password)
print(user.check_password("12345"))
print(user.check_password("123456789"))
运行结果为:
加密后的密码是 25f9e794323b453885f5181f1b624d0b
12345:密码错误
123456789:密码正确

MD5加密算法不是绝对安全的,可以对MD5数据再次进行MD5加密或使用其他的加密方法再处理,这样可以增加密码的安全性

#!/usr/bin/python
import hashlib
class User:
	def __init__(self,username,password):
		self.username=username
		password1=self.encryption(password)
		password2=self.encryption(password1)
		self.password=password2 
		print(password+"一次加密后为:"+password1)
		print(password+"二次加密后为:"+password2)
		
	def encryption(self,password):  #加密函数
		return hashlib.md5(password.encode()).hexdigest()  #hexdigest是十六进制数据字符串值
		
		
	def check_password(self,password):
		password1=self.encryption(password)
		password2=self.encryption(password1)
		if password2==self.password:
			return password+":密码正确"
		else:
			return password+":密码错误"
		
user = User("zhangsan","123456789")
print(user.check_password("12345"))
print(user.check_password("123456789"))
	  
	
运行结果为:
123456789一次加密后为:25f9e794323b453885f5181f1b624d0b
123456789二次加密后为:70873e8580c9900986939611618d7b1e
12345:密码错误
123456789:密码正确

 


版权声明:本文为qq_40639185原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。