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

本文实例为大家分享了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)

运行结果:

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

(0)

相关推荐

  • Python使用MD5加密字符串示例

    Python加密模块有好几个,但无论是哪种加密方式都需要先导入相应的加密模块然后再使用模块对字符串加密. 先导入md5加密所需模块: 复制代码 代码如下: import hashlib 创建md5对象 复制代码 代码如下: m = hashlib.md5() 生成加密串,其中 password 是要加密的字符串 复制代码 代码如下: m.update('password') 获取加密串 复制代码 代码如下: psw = m.hexdigest() 输出 复制代码 代码如下: print psw

  • Python使用MD5加密算法对字符串进行加密操作示例

    本文实例讲述了Python使用MD5加密算法对字符串进行加密操作.分享给大家供大家参考,具体如下: # encoding: utf-8 from __future__ import division import time import sys reload(sys) time1=time.time() sys.setdefaultencoding('utf-8') #######Md5实现方式1 import hashlib # 创建md5对象 hl = hashlib.md5() passw

  • python 异或加密字符串的实例

    做个简单习题:输入明文给定秘钥,密文还原,按位异或处理. import base64 as b64 def xor_encrypt(tips,key): ltips=len(tips) lkey=len(key) secret=[] num=0 for each in tips: if num>=lkey: num=num%lkey secret.append( chr( ord(each)^ord(key[num]) ) ) num+=1 return b64.b64encode( "&

  • python实现字符串加密 生成唯一固定长度字符串

    背景 有时候爬虫爬过的url需要进行指纹核对,比如Scrapy就是进行指纹核对,如果是指纹重复则不再爬取.当然在入库的时候我还是需要做一次核对,否则如果爬虫有漏掉,进入数据库就不合适了. 思路 根据Scrapy的指纹生成方式,这次的指纹生成方式也是用hash的MD5对目标URL进行加密,生成固定长度的字符串,然后在数据库里面将字段设置成unique,这样的话在保证url固定长度的情况下还能够保证入库后的唯一性,进最大努力避免出现重复的数据. 指纹生成代码 新建一个文件,然后在里面编写指纹生成的方

  • python字符串加密解密的三种方法分享(base64 win32com)

    1. 最简单的方法是用base64: 复制代码 代码如下: import base64 s1 = base64.encodestring('hello world')s2 = base64.decodestring(s1)print s1,s2 # aGVsbG8gd29ybGQ=\n# hello world Note: 这是最简单的方法了,但是不够保险,因为如果别人拿到你的密文,也可以自己解密来得到明文 2. 第二种方法是使用win32com.client 复制代码 代码如下: import

  • Python实现对字符串的加密解密方法示例

    本文实例讲述了Python实现对字符串的加密解密方法.分享给大家供大家参考,具体如下: 需求是是要将密码存在数据库里,所以要加密解密是可逆的,在数据库里不要有特殊字符,防止数据库备份和恢复中出错. 安装PyCrypto,可以用AES和DES.我使用DES加解密.加密后将密文转为16进制,在入库.测试代码如下. ; html-script: false ]#!/bin/python #-*- coding:utf-8 -*- # Filename: # Revision: # Date: 2013

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

    本文实例为大家分享了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

  • Python 正则表达式匹配数字及字符串中的纯数字

    Python 正则表达式匹配数字 电话号码:\d{3}-\d{8}|\d{4}-\d{7} QQ号:[1-9][0-9]{4,} 中国邮政编码:[1-9]\d{5}(?!\d) 身份证:\d{15}|\d{18} ip地址:\d+\.\d+\.\d+\.\d+ [1-9]\d*      正整数 -[1-9]\d* 负整数 -?[1-9]\d* 整数 [1-9]\d*|0 非负整数 -[1-9]\d*|0 非正整数 [1-9]\d*\.\d*|0\.\d*[1-9]\d*$ 正浮点数 -([1-

  • python将字符串转换成数组的方法

    python将字符串转换成数组的方法.分享给大家供大家参考.具体实现方法如下: #----------------------------------------- # Name: string_to_array.py # Author: Kevin Harris # Last Modified: 02/13/04 # Description: This Python script demonstrates # how to modify a string by # converting it

  • python 将字符串转换成字典dict的各种方式总结

    1)利用eval可以将字典格式的字符串与字典户转 >>>mstr = '{"name":"yct","age":10}' 转换为可以用的字典: >>>eval(mstr), type( eval(mstr) ) {"name":"yct","age":10}, dict 2).JSON到字典转化: >>>dictinfo = json

  • python将字符串转换成json的方法小结

    最近在工作中遇到了一个小问题,如果要将字符串型的数据转换成dict类型,我第一时间就想到了使用json函数.但是里面出现了一些问题 1.通过json来转换: In [1]: import json In [2]: mes = '{"InsId": 2, "name": "lege-happy", "CreationTime": "2019-04-23T03:18:02Z"}' In [3]: mes_to_

  • python入门字符串拼接\截取\转数字理解学习

    目录 1.Python字符串的拼接 2.Python字符串的截取 3.python字符串怎么转数字 4."*"号的运用 5.Python字符串格式化 1.Python字符串的拼接 拼接方式很简单-我们可以用"+"号作为字符串的拼接符,将两个字符串拼接到一起.需要注意的是,字符串的拼接要求必须是两个字符串,如果其中一个类型为非字符串类型,就会报错.下面我们来看下字符串的具体应用! m="hello"n="world"d=&quo

  • php生成随机字符串可指定纯数字、纯字母或者混合的

    php 生成随机字符串 可以指定是纯数字 还是纯字母 或者混合的. 可以指定长度的. 复制代码 代码如下: function rand_zifu($what,$number){ $string=''; for($i = 1; $i <= $number; $i++){ //混合 $panduan=1; if($what == 3){ if(rand(1,2)==1){ $what=1; }else{ $what=2; } $panduan=2; } //数字 if($what==1){ $str

  • 易语言将日期时间转换成纯数字格式的代码

    将时间转换到纯数字格式的代码 .版本 2 .程序集 窗口程序集1 .程序集变量 年, 文本型 .程序集变量 月, 文本型 .程序集变量 日, 文本型 .程序集变量 时, 文本型 .程序集变量 分, 文本型 .程序集变量 秒, 文本型 .子程序 获取时间 年 = 到文本 (取年份 (取现行时间 ())) .判断开始 (取月份 (取现行时间 ()) < 10) 月 = 到文本 ("0") + 到文本 (取月份 (取现行时间 ())) .默认 月 = 到文本 (取月份 (取现行时间 (

  • asp.net 验证字符串是否为纯数字检测函数

    复制代码 代码如下: #region 判断是否为数字的方法 public bool isnumeric(string str) { char[] ch=new char[str.Length]; ch=str.ToCharArray(); for(int i=0;i<ch.Length;i++) { if(ch[i]<48 || ch[i]>57) return false; } return true; } #endregion

随机推荐