精华内容
下载资源
问答
  • 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使用MD5加密算法字符串进行加密操作,结合实例形式分析了Python实现md5加密相关操作技巧,需要的朋友可以参考下
  • 本文实例为大家分享了python实现字符串加密成纯数字的具体代码,供大家参考,具体内容如下 说明: 该加密算法仅仅是做一个简单的加密,安全性就不谈了,哈哈. 算法流程:
  • python利用异或算法实现字符串加密解密 代码: def crypt(source,key): from itertools import cycle result='' temp=cycle(key) for ch in source: result = result +chr(ord(ch)^ord(n...

                                        python利用异或算法实现字符串加密解密

    代码:

    def crypt(source,key):
    	from itertools import cycle
    	result=''
    	temp=cycle(key)
    	for ch in source:
    		result = result +chr(ord(ch)^ord(next(temp)))
    	return result
    
    source ='jiangnan Institute of Business and Technology'
    key = 'xxk'
    print('Before Encrypted:'+source)
    encrypted = crypt(source, key)#加密
    print('After Encrypted:'+encrypted)
    decrypted = crypt(encrypted, key)#解密
    print('After decrypted:'+decrypted)

    结果:

     

    展开全文
  • 导入hashlib 模块 import hashlib def str_encrypt(str): ... 使用sha1加密算法,返回str加密后的字符串  """  sha = hashlib.sha1(str)  encrypts = sha.hexdigest()  return encrypts

    导入hashlib 模块

    import hashlib


    def str_encrypt(str):
        """
        使用sha1加密算法,返回str加密后的字符串
        """
        sha = hashlib.sha1(str)
        encrypts = sha.hexdigest()
        return encrypts


    展开全文
  • python的hashlib字符串加密模块

    千次阅读 2017-09-11 17:30:03
    hashlib模块是用来对字符串进行hash加密的模块,得到的hash密文不会改变,稳定;用于注册、登录时用户名、密码等加密使用。 一.函数分析: 1.共有5种加密算法: md5(),sha1(),sha224(),sha256(),sha384(),...

    hashlib模块是用来对字符串进行hash加密的模块,得到的hash密文不会改变,稳定;用于注册、登录时用户名、密码等加密使用。
    一.函数分析:
    1.共有5种加密算法:
    md5(),sha1(),sha224(),sha256(),sha384(),sha512(),分别得到不同的加密密文。
    2.hashlib.hexdigest():获取加密的密文,16进制,无参数。
    3.hashlib.digest():获取加密的密文,二进制,无参数。
    4.hashlib.copy():复制一份当前创建的hash对象,无参数。
    5.update(str1.encode("utf-8")):更新加密的密文,得到的密文与原来的密文不相同。


    hash.name:查看当前获得的hash对象的加密算法;

    hash.digest_size:hash密文占多少个字节;

    hash.block_size:hash数据块的大小。

    hashlib.algorithms_guaranteed:查看所有平台都支持的hash算法;

    hashlib.algorithms_available:查看所有的hash加密算法。


    二。运用:
    1.创建哈希对象,有两种方式:
    m = hashlib.new("md5",b"cai") # 选择md5加密函数加密字符串“cai”
    m = hashlib.md5("cai".encode("utf-8")) # 加密的另一种写法

    2.特殊用法:当需要加密的字符串过大的时候,可以使用同一个hash对象分多次加密,update(a)+update(b)=update(a+b).
    举例:

    1 m = hb.md5()
    2 m1 = m.copy()
    3 m.update("a".encode("utf-8"))
    4 m.update("b".encode("utf-8")) 
    5 print(m.hexdigest()) # 输出密文1
    6 m1.update("ab".encode("utf-8"))
    7 print(m1.hexdigest()) # 输出与密文1完全相同的密文2

     

    3.例子:

     1 import hashlib as hb
     2 
     3 
     4 def hash_fun(str1):
     5 m = hb.md5(str1.encode("utf-8")) # 创建一个hash对象,并对str1加密
     6 print(m.hexdigest()) # 输出得到的密文
     7 m.update(str1.encode("utf-8")) # 更新密文
     8 print(m.hexdigest()) # 输出更新密文,与前面不再相同
     9 print(m.digest()) # 获取字节密文
    10 print(m.block_size) # 获取hash块的大小
    11 print(m.digest_size) # 获取密文的字节数
    12 print(m.name) # 获取加密算法的名字md5
    13 
    14 
    15 def hash_fun2(str1):
    16 m = hb.md5(str1.encode("utf-8"))
    17 print(m.hexdigest())
    18 a = m.copy() # 拷贝一个hash对象
    19 print(a.hexdigest()) # 得到的密文没改变
    20 
    21 
    22 def hash_fun1(str1):
    23 m = hb.sha1(str1.encode("utf-8")) # sha1算法加密
    24 print(m.hexdigest())
    25 m1 = hb.sha224(str1.encode("utf-8")) # sha224算法加密
    26 print(m1.hexdigest())
    27 
    28 
    29 def hash_fun3():
    30 m = hb.md5()
    31 m1 = m.copy()
    32 m.update("a".encode("utf-8"))
    33 m.update("b".encode("utf-8"))
    34 print(m.hexdigest())
    35 m1.update("ab".encode("utf-8"))
    36 print(m1.hexdigest())
    37 
    38 
    39 if __name__ == '__main__':
    40 hash_fun("cai")
    41 print()
    42 hash_fun1("cai")
    43 print()
    44 hash_fun2("cai")
    45 print()
    46 hash_fun3()

    结果如下:

     

    展开全文
  • python sha1加密字符串

    万次阅读 2018-12-20 10:26:59
    直接调用该方法即可实现sha1加密 def get_str_sha1_secret_str(res:... 使用sha1加密算法,返回str加密后的字符串 """ sha = hashlib.sha1(res.encode('utf-8')) encrypts = sha.hexdigest() pr...
  • 2019独角兽企业重金招聘Python工程师标准>>> ...
  • Python各类加密解密算法代码集,比如这些解密算法中就包括了base64、摩斯密码表(自己可定义加密方式...)、将摩斯密码还原成字符串、RE加密等,后续还会分享更多的Python加密算法,敬请期待。
  • 2019独角兽企业重金招聘Python工程师标准>>> ...
  • Python使用hashlib模块做字符串加密

    千次阅读 2016-07-08 17:23:31
    hashlib是个专门提供hash算法的库,现在里面包括md5, sha1, sha224, sha256, sha384,sha512,使用非常简单、方便。 md5经常用来做用户密码的存储。而sha1则经常用作数字签名。#-*- encoding:gb2312 -*- import ...
  • 它对应任何字符串都可以加密成一段唯一的固定长度的代码 SHA1 SHA1的全称是Secure Hash Algorithm(安全哈希算法) 。SHA1基于MD5,加密后的数据长度更长,它对长度小于264的输入,产生长度为160bit的散列值。比M...
  • 1、需要了解python中ord()与chr()的使用,ord()中输入的为字符串,chr()中输入的为数字 2、需要了解^异或使用 3、不多介绍,直接上代码: 可以根据输入的明文、秘钥加密,并且可以据输入的密文、秘钥解密。 #...
  • python各种加密算法

    千次阅读 2018-01-05 15:38:15
    Python内置的base64模块可以实现base64、base32、base16、base85、urlsafe_base64的编码解码,python 3.x通常输入输出都是二进制形式,2.x可以是字符串形式。 base64模块的base64编码、解码调用了binascii模块,...
  • 本文仅仅对字符串的情况进行了处理,因为发送的时候,公钥是公开的,而且以字符创的形式放入json的,广播到区块链的P2P网络上。 需要安装python的ecdsa库,终端输入命令:pip install ecdsa即可。本文的基于python...
  • 这篇文章是讲述 如何通过hashlib 和base64 对字符串进行加密的 hashlib 强大的hashlib,提供了用于加密相关的操作,代替了md5模块和sha模块,主要提供 SHA1, SHA224, SHA256, SHA384, SHA512 ,MD5 算法 hmac...
  • 说白了,就是把字符串倒序。  在js里,有一个reverse。但是python中没有。 不过,有一个更简单的方法,就是:  ‘abcd’ [::-1] 这里,具体解释一下: (参看:...
  • 例1:编写函数实现字符串加密和解密,循环使用指定密钥,采用简单的异或算法。 代码如下: def crypt(source, key): from itertools import cycle result = '' temp = cycle(key) for ch in source: result = ...
  • 加密字符串 在得到的项目文件夹下使用如下命令即可启动 GUI 界面: $ python3 main.py 因为 DES 是分组密码,密钥要求是64位也就是8个字节的字符,所以密钥输入框只能输入8字节字符,待加密明文会对其进行填充补全,...
  • ''' 引入hmac,hashlib加密模块 ''' import hmac import hashlib def jm_sha256(key, value... sha256加密 ... return:加密结果转成16进制字符串形式,并大写 ''' hsobj = hashlib.sha256(key.encode("utf-...

空空如也

空空如也

1 2 3 4 5 ... 17
收藏数 324
精华内容 129
关键字:

python字符串加密算法

python 订阅