Python实现字符串转纯数字加密与解密算法

顾言
顾言
发布时间:2026-10-13 | 6人浏览过
原创

本文介绍一种使用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)

程序运行输出结果:

以上内容为本次分享的全部代码与解析,希望能为读者的编程学习提供有益帮助,欢迎继续支持本站获取更多技术资源。

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表