在使用创建web开发的过程中,直接使用用户名url,容易造成用户信息的被攻击,例如对方直接访问 ../../.../username 的网页,可以窃取用户信息,然而把usename变成一堆乱码就安全的多
效果:
代码:
python
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}")