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之折腾一下目录
Oct 24 Python
举例讲解Python程序与系统shell交互的方式
Apr 09 Python
简单谈谈Python中的几种常见的数据类型
Feb 10 Python
浅谈numpy数组的几种排序方式
Dec 15 Python
解决Pycharm运行时找不到文件的问题
Oct 29 Python
python爬取淘宝商品销量信息
Nov 16 Python
python实现简单名片管理系统
Nov 30 Python
python调用并链接MATLAB脚本详解
Jul 05 Python
在django中自定义字段Field详解
Dec 03 Python
python迷宫问题深度优先遍历实例
Jun 20 Python
Python MNIST手写体识别详解与试练
Nov 07 Python
python 实现图片特效处理
Apr 03 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
php 搜索框提示(自动完成)实例代码
2012/02/05 PHP
深入php之规范编程命名小结
2013/05/15 PHP
php Calender(日历)代码分享
2014/01/03 PHP
php的XML文件解释类应用实例
2014/09/22 PHP
php返回当前日期或者指定日期是周几
2015/05/21 PHP
给WordPress的编辑后台添加提示框的代码实例分享
2015/12/25 PHP
JavaScript 函数调用规则
2009/09/14 Javascript
js页面滚动时层智能浮动定位实现(jQuery/MooTools)
2011/08/23 Javascript
js三种排序算法分享
2012/08/16 Javascript
jquery实现键盘左右翻页特效
2015/04/30 Javascript
详解JavaScript数组和字符串中去除重复值的方法
2016/03/07 Javascript
angularjs下ng-repeat点击元素改变样式的实现方法
2018/09/12 Javascript
Vue 中文本内容超出规定行数后展开收起的处理的实现方法
2019/04/28 Javascript
微信小程序一周时间表功能实现
2019/10/17 Javascript
JS实现多选框的操作
2020/06/24 Javascript
vue3.0中使用element的完整步骤
2021/03/04 Vue.js
python实现上传样本到virustotal并查询扫描信息的方法
2014/10/05 Python
python实现unicode转中文及转换默认编码的方法
2017/04/29 Python
python flask实现分页效果
2017/06/27 Python
浅谈python日志的配置文件路径问题
2018/04/28 Python
Python实现的个人所得税计算器示例
2018/06/01 Python
pandas把所有大于0的数设置为1的方法
2019/01/26 Python
Python基于数列实现购物车程序过程详解
2020/06/09 Python
Python logging自定义字段输出及打印颜色
2020/11/30 Python
新西兰演唱会和体育门票网站:Ticketmaster新西兰
2017/10/07 全球购物
安踏官方商城:anta.cn
2019/12/16 全球购物
车辆转让协议书
2014/04/15 职场文书
民族团结先进集体事迹材料
2014/05/22 职场文书
义诊活动总结
2015/02/04 职场文书
学生乘坐校车安全责任书
2015/05/11 职场文书
房产电话营销开场白
2015/05/29 职场文书
运动会广播稿20字
2015/08/19 职场文书
MySQL update set 和 and的区别
2021/05/08 MySQL
Vue如何实现组件间通信
2021/05/15 Vue.js
Python 键盘事件详解
2021/11/11 Python
http通过StreamingHttpResponse完成连续的数据传输长链接方式
2022/02/12 Python