python实现字符串加密成纯数字


Posted in Python onMarch 19, 2019

本文实例为大家分享了python实现字符串加密成纯数字的具体代码,供大家参考,具体内容如下

说明: 

该加密算法仅仅是做一个简单的加密,安全性就不谈了,哈哈. 

算法流程:

1.字符串以utf8编码成字节数组
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) 

代码实现:

加密:

#加密
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实现字符串加密成纯数字

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中用Spark模块的使用教程
Apr 13 Python
Python字符串格式化输出方法分析
Apr 13 Python
CentOS 6.5下安装Python 3.5.2(与Python2并存)
Jun 05 Python
浅谈Python实现Apriori算法介绍
Dec 20 Python
windows下python和pip安装教程
May 25 Python
Python基于scipy实现信号滤波功能
May 08 Python
python 实现将小图片放到另一个较大的白色或黑色背景图片中
Dec 12 Python
python手机号前7位归属地爬虫代码实例
Mar 31 Python
Python绘制动态水球图过程详解
Jun 03 Python
tensorflow 2.1.0 安装与实战教程(CASIA FACE v5)
Jun 30 Python
python list的index()和find()的实现
Nov 16 Python
Python Matplotlib绘制条形图的全过程
Oct 24 Python
python实现简单加密解密机制
Mar 19 #Python
python使用adbapi实现MySQL数据库的异步存储
Mar 19 #Python
python异步存储数据详解
Mar 19 #Python
利用Python半自动化生成Nessus报告的方法
Mar 19 #Python
python实现手机销售管理系统
Mar 19 #Python
Python使用修饰器进行异常日志记录操作示例
Mar 19 #Python
python学生管理系统学习笔记
Mar 19 #Python
You might like
星际争霸 Starcraft 秘技补丁
2020/03/14 星际争霸
PHP开发者常犯的10个MySQL错误更正剖析
2012/01/30 PHP
PHP中CheckBox多选框上传失败的代码写法
2017/02/13 PHP
[原创]php token使用与验证示例【测试可用】
2017/08/30 PHP
laravel框架如何设置公共头和公共尾
2019/10/22 PHP
laravel实现图片上传预览,及编辑时可更换图片,并实时变化的例子
2019/11/14 PHP
Laravel5.1 框架控制器基础用法实例分析
2020/01/04 PHP
javascript 浏览器检测代码精简版
2010/03/04 Javascript
javascript中关于break,continue的特殊用法与介绍
2012/05/24 Javascript
Extjs4中Form的使用之本地hiddenfield
2013/11/26 Javascript
javascript中Function类型详解
2015/04/28 Javascript
js跨域资源共享 基础篇
2016/07/02 Javascript
JS控制TreeView的结点选择
2016/11/11 Javascript
Bootstrap 填充Json数据的实例代码
2017/01/11 Javascript
JS操作xml对象转换为Json对象示例
2017/03/25 Javascript
在Js页面通过POST传递参数跳转到新页面详解
2017/08/25 Javascript
给vue项目添加ESLint的详细步骤
2017/09/29 Javascript
Vue keepAlive 数据缓存工具实现返回上一个页面浏览的位置
2019/05/10 Javascript
原生js实现html手机端城市列表索引选择城市
2020/06/24 Javascript
python连接sql server乱码的解决方法
2013/01/28 Python
详解Django 中是否使用时区的区别
2018/06/14 Python
python匿名函数用法实例分析
2019/08/03 Python
python 提取文件指定列的方法示例
2019/08/07 Python
Python chardet库识别编码原理解析
2020/02/18 Python
Django返回HTML文件的实现方法
2020/09/17 Python
Python下载的11种姿势(小结)
2020/11/18 Python
python爬虫用scrapy获取影片的实例分析
2020/11/23 Python
CSS3实现可爱的小黄人动画
2016/07/11 HTML / CSS
Html5页面在微信端的分享的实现方法
2018/08/30 HTML / CSS
Abbacino官网:包、钱包和女士配饰
2019/04/15 全球购物
道路施工安全责任书
2014/07/24 职场文书
安全主题班会教案
2015/08/12 职场文书
小学2016年第十八届推普周活动总结
2016/04/05 职场文书
原来实习报告是这样写的呀!
2019/07/03 职场文书
MySQL中CURRENT_TIMESTAMP的使用方式
2021/11/27 MySQL
Win11无法安装更新补丁KB3045316怎么办 附KB3045316补丁修复教程
2022/08/14 数码科技