Python实现字符串转纯数字加密与解密算法
本文介绍一种使用Python将字符串转换为纯数字序列的简单加密算法。通过将UTF-8字节转为十进制字符串并添加长度位,结合可配置的数字映射规则进行替换,实现数据的初步混淆。文章提供了完整的加密与解密函数代码及测试示例,适用于对安全性要求不高的场景,如简单数据隐藏或格式转换。
Python字符串加密成纯数字实现方案
本文分享了一个使用Python将字符串加密为纯数字序列的具体实现方案,供读者参考学习。
算法说明:
该加密方式仅用于实现基础的字符串转换,其安全性较低,不适合高安全需求场景。
加密算法处理流程
核心处理流程如下:
1. 将原始字符串按照UTF-8编码转换为字节数组; 2. 将字节数组中的每个字节值转换为对应的十进制数字字符串(范围'0'至'255'); 3. 在每个十进制数字字符串前添加一个固定占1位的长度标识符; 4. 执行数字替换操作,例如采用映射规则:0→1,1→9,2→3,3→8,4→7,5→6,6→2,7→4,8→5,9→0。
Python代码实现与测试
代码实现部分:
加密函数逻辑:
#加密
def encrypt(srcStr,password='1938762450'):
#将字符串转换成字节数组
data=bytearray(srcStr.encode('utf-8'))
#把每个字节转换成数字字符串
strList=[str(byte) for byte in data]
#给每个数字字符串前面加一个长度位
strList=[str(len(s))+s for s in strList]
#进行数字替换
for index0 in range(len(strList)):
tempStr = ""
for index in range(len(strList[index0])):
tempStr+=password[int(strList[index0][index])]
strList[index0]=tempStr
return "".join(strList)
解密函数逻辑:
#解密
def decrypt(srcStr,password='1938762450'):
#数字替换还原
tempStr=""
for index in range(len(srcStr)):
tempStr+=str(password.find(srcStr[index]))
#去掉长度位,还原成字典
index=0
strList=[]
while True:
#取长度位
length=int(tempStr[index])
#取数字字符串
s=tempStr[index+1:index+1+length]
#加入到列表中
strList.append(s)
#增加偏移量
index+=1+length
#退出条件
if index>=len(tempStr):
break
data=bytearray(len(strList))
for i in range(len(data)):
data[i]=int(strList[i])
return data.decode('utf-8')
测试用例执行:
if __name__ == '__main__':
ret=encrypt('id:123,time:7200,key:123456789987654321','1938762450')
print('密文:',ret)
ret=decrypt(ret,'1938762450')
print('原文:',ret)
程序运行输出结果:

以上内容为本次分享的全部代码与解析,希望能为读者的编程学习提供有益帮助,欢迎继续支持本站获取更多技术资源。
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









