python加密解密函数_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 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

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

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

本文标题: python字符串加密解密的三种方法分享(base64 win32com)

本文地址: http://www.cppcns.com/jiaoben/python/104200.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
智慧校园整体解决方案是响应国家教育信息化政策,结合教育改革和技术创新的产物。该方案以物联网、大数据、人工智能和移动互联技术为基础,旨在打造一个安全、高效、互动且环保的教育环境。方案强调从数字化校园向智慧校园的转变,通过自动数据采集、智能分析和按需服务,实现校园业务的智能化管理。 方案的总体设计原则包括应用至上、分层设计和互联互通,确保系统能够满足不同用户角色的需求,并实现数据和资源的整合与共享。框架设计涵盖了校园安全、管理、教学、环境等多个方面,构建了一个全面的校园应用生态系统。这包括智慧安全系统、校园身份识别、智能排课及选课系统、智慧学习系统、精品录播教室方案等,以支持个性化学习和教学评估。 建设内容突出了智慧安全和智慧管理的重要性。智慧安全管理通过分布式录播系统和紧急预案一键启动功能,增强校园安全预警和事件响应能力。智慧管理系统则利用物联网技术,实现人员和设备的智能管理,提高校园运营效率。 智慧教学部分,方案提供了智慧学习系统和精品录播教室方案,支持专业级学习硬件和智能化网络管理,促进个性化学习和教学资源的高效利用。同时,教学质量评估中心和资源应用平台的建设,旨在提升教学评估的科学性和教育资源的共享性。 智慧环境建设则侧重于基于物联网的设备管理,通过智慧教室管理系统实现教室环境的智能控制和能效管理,打造绿色、节能的校园环境。电子班牌和校园信息发布系统的建设,将作为智慧校园的核心和入口,提供教务、一卡通、图书馆等系统的集成信息。 总体而言,智慧校园整体解决方案通过集成先进技术,不仅提升了校园的信息化水平,而且优化了教学和管理流程,为学生、教师和家长提供了更加便捷、个性化的教育体验。
Python中可以使用多种方法进行字符串加密和解密操作。 一种常见的方法是使用`base64`模块进行编码和解码。编码可以将一个字符串转换为一串由大小写字母、数字和特殊字符组成的编码字符串,解码则可以将编码字符串还原为原始字符串。 下面是一个使用`base64`模块进行加密解密的示例代码: ```python import base64 def encrypt_string(input_string): # 将字符串转换为字节流 bytes_string = input_string.encode('utf-8') # 使用base64编码字节流 encrypted_bytes = base64.b64encode(bytes_string) # 将编码字节流转换为字符串 encrypted_string = encrypted_bytes.decode('utf-8') return encrypted_string def decrypt_string(input_string): # 将字符串转换为字节流 bytes_string = input_string.encode('utf-8') # 使用base64解码字节流 decrypted_bytes = base64.b64decode(bytes_string) # 将解码字节流转换为字符串 decrypted_string = decrypted_bytes.decode('utf-8') return decrypted_string # 测试加密和解密功能 original_string = 'Hello, World!' encrypted_string = encrypt_string(original_string) decrypted_string = decrypt_string(encrypted_string) print('原始字符串:', original_string) print('加密后的字符串:', encrypted_string) print('解密后的字符串:', decrypted_string) ``` 另一种常见的加密方法是使用`hashlib`模块进行哈希加密。哈希函数一个字符串转换为固定长度的哈希值,且哈希值是不可逆的。这意味着无法通过哈希值还原出原始字符串,只能通过比对哈希值来验证字符串的正确性。 下面是一个使用`hashlib`模块进行哈希加密的示例代码: ```python import hashlib def encrypt_string(input_string): # 创建一个哈希对象 hash_object = hashlib.sha256() # 更新哈希对象的内容 hash_object.update(input_string.encode('utf-8')) # 获取哈希值 encrypted_string = hash_object.hexdigest() return encrypted_string # 测试加密功能 original_string = 'Hello, World!' encrypted_string = encrypt_string(original_string) print('原始字符串:', original_string) print('加密后的字符串:', encrypted_string) ``` 需要注意的是,哈希加密是不可逆的,所以无法通过解密函数获取原始字符串
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值