精华内容
下载资源
问答
  • Python字符加密

    千次阅读 2018-01-24 11:40:59
    用记事本打开exe、jpg、pdf这些文件时,我们都会看到一大堆乱码,因为二进制文件包含很多无法显示和打印的字符,所以,如果要让记事本这样的文本处理软件能处理二进制数据,就需要一个二进制到字符串的转换方法。...

    ①base64
    Base64是一种用64个字符来表示任意二进制数据的方法。
    用记事本打开exe、jpg、pdf这些文件时,我们都会看到一大堆乱码,因为二进制文件包含很多无法显示和打印的字符,所以,如果要让记事本这样的文本处理软件能处理二进制数据,就需要一个二进制到字符串的转换方法。Base64是一种最常见的二进制编码方法。

    import base64
    
    s1 = base64.encodestring('hello world') #注意这在python3中改用二进制流了,但是仍然好用
    s2 = base64.decodestring(s1)
    print s1,s2
    
    # aGVsbG8gd29ybGQ=\n
    # hello world

    这是最简单的方法,但是不够保险,因为如果别人拿到你的密文,也可以自己解密来得到明文

    ②win32com.client

    import win32com.client
    def encrypt(key,content): # key:密钥,content:明文
     EncryptedData = win32com.client.Dispatch('CAPICOM.EncryptedData')
     EncryptedData.Algorithm.KeyLength = 5
     EncryptedData.Algorithm.Name = 2
     EncryptedData.SetSecret(key)
     EncryptedData.Content = content
     return EncryptedData.Encrypt()
    
    def decrypt(key,content): # key:密钥,content:密文
     EncryptedData = win32com.client.Dispatch('CAPICOM.EncryptedData')
     EncryptedData.Algorithm.KeyLength = 5
     EncryptedData.Algorithm.Name = 2
     EncryptedData.SetSecret(key)
     EncryptedData.Decrypt(content)
     str = EncryptedData.Content
     return str
    
    s1 = encrypt('lovebread', 'hello world')
    s2 = decrypt('lovebread', s1)
    print s1,s2
    
    # MGEGCSsGAQQBgjdYA6BUMFIGCisGAQQBgjdYAwGgRDBCAgMCAAECAmYBAgFABAgq
    # GpllWj9cswQQh/fnBUZ6ijwKDTH9DLZmBgQYmfaZ3VFyS/lq391oDtjlcRFGnXpx
    # lG7o
    # hello world

    这种方法也很方便,而且可以设置自己的密钥,比第一种方法更加安全,是加密解密的首选之策!

    ③自己写加密解密算法

    def encrypt(key, s):
        b = bytearray(str(s).encode("gbk"))
        n = len(b) # 求出 b 的字节数
        c = bytearray(n*2)
        j = 0
        for i in range(0, n):
            b1 = b[i]
            b2 = b1 ^ key # b1 = b2^ key
            c1 = b2 % 16
            c2 = b2 // 16 # b2 = c2*16 + c1
            c1 = c1 + 65
            c2 = c2 + 65 # c1,c2都是0~15之间的数,加上65就变成了A-P 的字符的编码
            c[j] = c1
            c[j+1] = c2
            j = j+2
        return c.decode("gbk")
    
    
    def decrypt(key, s):
        c = bytearray(str(s).encode("gbk"))
        n = len(c)  # 计算 b 的字节数
        if n % 2 != 0:
            return ""
        n = n // 2
        b = bytearray(n)
        j = 0
        for i in range(0, n):
            c1 = c[j]
            c2 = c[j+1]
            j = j+2
            c1 = c1 - 65
            c2 = c2 - 65
            b2 = c2*16 + c1
            b1 = b2 ^ key
            b[i] = b1
        return b.decode("gbk")

    更多内容访问omegaxyz.com

    展开全文
  • 今天小编就为大家分享一篇python 异或加密字符串的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • python 异或加密字符

    千次阅读 2018-01-26 17:02:44
    做个简单习题:输入明文给定秘钥,密文还原,按位异或处理。 import base64 as b64 def xor_encrypt(tips,key): ltips=len(tips) lkey=len(key) secret=[] num=0 for each in tips: ... num

    做个简单习题:输入明文给定秘钥,密文还原,按位异或处理。

    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( "".join( secret ).encode() ).decode()
    
    
    def xor_decrypt(secret,key):
    
        tips = b64.b64decode( secret.encode() ).decode()
    
        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 "".join( secret )
    
    
    tips= "1234567"
    key= "owen"
    secret = xor_encrypt(tips,key)
    print( "cipher_text:", secret )
    
    plaintxt = xor_decrypt( secret, key )
    print( "plain_text:",plaintxt )
    展开全文
  • Python字符加密解密方法总结

    千次阅读 2019-05-09 15:57:46
    编程中经常会对字符串做加密解密处理,特别是涉及到隐私的字符串,如密码等的时候,就需要加密,自己总结了一下,大致有三种:base64,win32com.client和自己写加密解密算法,当然最安全的就是自己写加密解密算法了...

      编程中经常会对字符串做加密解密处理,特别是涉及到隐私的字符串,如密码等的时候,就需要加密,自己总结了一下,大致有三种:base64,win32com.client和自己写加密解密算法,当然最安全的就是自己写加密解密算法了。

      1. 最简单的方法是用base64:

      import base64

      s1 = base64.encodestring('hello world')

      s2 = base64.decodestring(s1)

      print s1,s2

      # aGVsbG8gd29ybGQ=\n

      # hello world

      注: 这是最简单的方法了,但是不够保险,因为如果别人拿到你的密文,也可以自己解密来得到明文;不过可以把密文字符串进行处理,如字母转换成数字或是特殊字符等,自己解密的时候在替换回去在进行base64.decodestring,这样要安全很多。

      2. 第二种方法是使用win32com.client

      import win32com.client

      def encrypt(key,content): # key:密钥,content:明文

      EncryptedData = win32com.client.Dispatch('CAPICOM.EncryptedData')

      EncryptedData.Algorithm.KeyLength = 5

      EncryptedData.Algorithm.Name = 2

      EncryptedData.SetSecret(key)

      EncryptedData.Content = content

      return EncryptedData.Encrypt()

      def decrypt(key,content): # key:密钥,content:密文

      EncryptedData = win32com.client.Dispatch('CAPICOM.EncryptedData')

      EncryptedData.Algorithm.KeyLength = 5

      EncryptedData.Algorithm.Name = 2

      EncryptedData.SetSecret(key)

      EncryptedData.Decrypt(content)

      str = EncryptedData.Content

      return str

      s1 = encrypt('lovebread', 'hello world')

      s2 = decrypt('lovebread', s1)

      print s1,s2

      # MGEGCSsGAQQBgjdYA6BUMFIGCisGAQQBgjdYAwGgRDBCAgMCAAECAmYBAgFABAgq

      # GpllWj9cswQQh/fnBUZ6ijwKDTH9DLZmBgQYmfaZ3VFyS/lq391oDtjlcRFGnXpx

      # lG7o

      # hello world

      注: 这种方法也很方便,而且可以设置自己的密钥,比第一种方法更加安全,如果对安全级别要求不太高的话这种方法是加密解密的首选之策!

      3. 还有就是自己写加密解密算法,比如:

      def encrypt(key, s):

      b = bytearray(str(s).encode(gbk))

      n = len(b) # 求出 b 的字节数

      c = bytearray(n*2)

      j = 0

      for i in range(0, n):

      b1 = b[i]

      b2 = b1 ^ key # b1 = b2^ key

      c1 = b2 % 16

      c2 = b2 // 16 # b2 = c2*16 + c1

      c1 = c1 + 65

      c2 = c2 + 65 # c1,c2都是0~15之间的数,加上65就变成了A-P 的字符的编码

      c[j] = c1

      c[j+1] = c2

      j = j+2

      return c.decode(gbk)

      def decrypt(key, s):

      c = bytearray(str(s).encode(gbk))

      n = len(c) # 计算 b 的字节数

      if n % 2 != 0 :

      return

      n = n // 2

      b = bytearray(n)

      j = 0

      for i in range(0, n):

      c1 = c[j]

      c2 = c[j+1]

      j = j+2

      c1 = c1 - 65

      c2 = c2 - 65

      b2 = c2*16 + c1

      b1 = b2^ key

      b[i]= b1

      try:

      return b.decode(gbk)

      except:

      return failed

      key = 15

      s1 = encrypt(key, 'hello world')

      s2 = decrypt(key, s1)

      print s1,'\n',s2

      # HGKGDGDGAGPCIHAGNHDGLG

      # hello world

      注: 这是网上抄来的一个简单的例子,大家可以自定义自己算法进行加密解密;还有许许多多复杂的加密算法,大家可以自行查阅密码学的相关算法。

      4.对于python来说,也可以把python源码文件编译成pyc二进制格式的文件,这样别人就看不到你的源码,也算是一种加密方法吧,方法如下:

      执行命令python -m py_compile create_slave.py 可以直接生成一个create_slave.pyc文件,然后可以用create_slave.pyc来替换create_slave.py作为脚本来执行。

    展开全文
  • python字符加密2-(基本数据类型)

    千次阅读 2020-10-29 22:50:52
    字符加密:大小写字母加密规则如下表,其它字符加密前后不变 输入格式: 输入一行想加密的字符串。 输出格式: 输出加密后的字符串。 输入样例: 在这里给出一组输入。例如: Zero zero seven! 输出样例: 在这里给出...

    前言

    PTA教学辅助平台练习题目-python3
    此文章适合初学者,内容都是一步步解释的。

    题目

    字符加密:大小写字母加密规则如下表,其它字符加密前后不变

    李江辰

    输入格式:

    输入一行想加密的字符串。

    输出格式:

    输出加密后的字符串。

    输入样例:

    在这里给出一组输入。例如:

    Zero zero seven!

    输出样例:

    在这里给出相应的输出。例如:

    aFSP AFSP TFWFO!

    解析:

    观察题目表格可以发现加密后:字母全部位向后移了一位,并且如果是大写就会变成小写 反之变成大写。

    思路:

    ①挨个取出字符→②判断大小写→③向后移动并改变大小写→④赋值给一个空字符串

    ①挨个取出字符:

    a = input() #输入内容给a
    for i in a: #循环取出a的每一个字符给i
    	#待编写的内容
    

    ②判断大小写
    首先得掌握以下函数方法:

    # a 代表字符串
    a.isalnum() #所有字符都是数字或者字母
    a.isalpha() #所有字符都是字母
    a.isdigit() #所有字符都是数字
    a.islower() #所有字符都是小写
    a.isupper() #所有字符都是大写
    a.istitle() #所有单词都是首字母大写,像标题
    a.isspace() #所有字符都是空白字符、\t、\n
    
    

    ∴代码如下:

    a = input() 
    	for i in a: 
    		if i.islower():
    		#改变成小写并向后移动一位
    		else:
    		#改变成大写并向后移动一位
    		
    

    ②改变字符
    大小写转换

    a.upper() #把所有字符中的小写字母转换成大写字母
    a.lower() #把所有字符中的大写字母转换成小写字母
    a.capitalize() #把第一个字母转化为大写字母,其余小写
    a.title() #把每个单词的第一个字母转化为大写,其余小写 
    

    ∴代码如下:

    a = input() 
    b = ""
    	for i in a: 
    		if i.islower():
    			temp = ord(i)+1
    	            if chr(temp).isalpha(): #如果后移一位字符串仍然是字母:
    	                b += chr(temp).upper() #将字符串接在b字符串末尾
    	            else:#否则
    	                b += chr(temp-26).upper()#将字符串迁移26个字母,接在b字符串末尾
    		else:
    			 temp = ord(i) + 1
                if chr(temp).isalpha():
                    b += chr(temp).lower()
                else:
                    b += chr(temp - 26).lower()
    

    到这里后我们只需要补齐程序的完整性就好了:

    完整代码:

    a = input()
    b = ""
    for i in a:
        if i.isalpha():
            if i.islower():
                temp = ord(i)+1
                if chr(temp).isalpha():
                    b += chr(temp).upper()
                else:
                    b += chr(temp-26).upper()
            else:
                temp = ord(i) + 1
                if chr(temp).isalpha():
                    b += chr(temp).lower()
                else:
                    b += chr(temp - 26).lower()
    
        else:
            b += i
    print(b)
    
    展开全文
  • 主要为大家详细介绍了python实现字符加密,生成唯一固定长度字符串,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 本文实例为大家分享了python实现字符加密成纯数字的具体代码,供大家参考,具体内容如下 说明: 该加密算法仅仅是做一个简单的加密,安全性就不谈了,哈哈. 算法流程:
  • Python异或加密字符

    2019-07-03 00:30:28
    import os import sys import struct def enc(path, key): path_ret = "" for i in range(0, len(path)/4): path_ret += struct.pack("<L", struct.unpack("<L", path[i*4 : (i*4)+...
  • Python_字符串_加密解密

    千次阅读 2020-04-27 11:19:08
    Python_字符串_加密解密
  • python加密字符

    2020-08-26 17:17:54
    import hashlib import base64 res = ‘121212’ print res md = hashlib.md5(s) res = md.hexdigest() res = base64.b64encode(s) sha = hashlib.sha1(s) res = sha.hexdigest()
  • Python字符串md5加密

    千次阅读 2013-11-08 00:24:14
    Python加密模块有好几个,但无论是哪种加密方式都需要先导入相应的加密模块然后再使用模块对字符加密。 先导入md5加密所需模块 1 import hashlib 创建md5对象 ...
  • 用 + 可以连接字符串 “hello” + “python” #“连接符”.join(序列) ls = [ "apple","pear","peach","banana"] #列表 s = "+",join(ls) print(s) ls1 = ("apple","pear","peach","banana") #元组 s1 = "-",join...
  • #!/usr/bin/env python ...加盐加密, 判断传输的文件还是str字符串进行加密 """ import hashlib def encry_hash(args): SALT = b'dtgrt345s90' # 盐 try: #如果传人的是文件 read_file = open(args, 'r
  • python密码加密

    万次阅读 2018-11-06 11:24:01
    推荐2种:sha1和md5,不可逆,sha1生成后40位,相对安全,但速度慢,md5生成...Python中如何使用?可单独创建一个utils工具文件,代码如下: """ 生成md5 32位加密串 """ import hashlib str1 = 'hello world!' ret = hash...
  • 【python】Python字符串md5加密

    千次阅读 2014-01-26 15:11:25
    import hashlib m=hashlib.md5() m.update('huawei') psw = m.hexdigest() print psw
  • 主要介绍了Python使用MD5加密算法对字符串进行加密操作,结合实例形式分析了Python实现md5加密相关操作技巧,需要的朋友可以参考下
  • 字符加密解密题目描述解题思路python代码实现 题目描述 输入两行字符串,第一行为需要加密字符串,第二行为需要解密的字符串,按照加密解密规则输出两行,第一行为加密后的字符串,第二行为解密后的字符串。加密...
  • python加密和解密 您是视觉... 在本教程中,您将学习如何使用Python使用加密库对文件或任何字节对象(也包括字符串对象)进行加密 。 我们将使用对称加密,这意味着与加密数据相同的密钥也可用于解密。 那里有很...
  • Python中异或加密要将str 转为 bitarray, 提示: int类型和纯数字的字符串也可以异或处理, 可能更方便 from bitarray import bitarray def str2bitarray(msg): # msg 为str  msg_2 = "" # 转为1010拼接成字符串 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 53,593
精华内容 21,437
关键字:

python字符加密

python 订阅