在使用创建web开发的过程中,直接使用用户名url,容易造成用户信息的被攻击,例如对方直接访问 ../../.../username 的网页,可以窃取用户信息,然而把usename变成一堆乱码就安全的多
效果:
代码:
import hashlib
import random def hash_username(username): # 创建一个SHA-256哈希对象 sha256_hash = hashlib.sha256() # 更新哈希对象以包含所提供的用户名(需编码为字节) sha256_hash.update(username.encode('utf-8')) # 返回哈希值的十六进制表示 username = sha256_hash.hexdigest() # 定义要添加的特殊符号 special_symbols = ['%', '@', '?'] # 随机选择位置和符号 symbol_count = random.randint(51, 63) # 随机选择添加51到63个符号 result = list(username) for _ in range(symbol_count): pos = random.randint(0, len(result)) # 随机选择一个位置 symbol = random.choice(special_symbols) # 随机选择一个符号 result.insert(pos, symbol) # 插入符号 # 将列表转回字符串 return ''.join(result) # 示例用户名
username = "username"
hashed_username = (hash_username(username))print(f"原用户名: {username}")
print(f"哈希后的用户名: {hashed_username}")