Python中的如何给一个字符串加密

Python中自带的hashlib模块的功能是给字符串进行加密,加密方式有以下几种:

md5、sha1、sh224、sha256、sha384、sha512

常用的是md5和sha1

这里首先介绍一下sh1的用法:

步骤如下:

1、导入sha1

2、生成sha1对象

3、sha1对象调用update()方法

4、sha1对象再次调用hexdigest()方法

5、保存或者打印第4步生成的字符串

代码如下:

from hashlib import sha1

def jia_mi(str):
    sh = sha1()
    sh.update(str.encode())
    return sh.hexdigest()

if __name__ == "__main__":
    pwd = jia_mi("hello")
    print(pwd)    
    

输出结果为40为加密后的字符串:

aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d


需要注意的是在Python3中生成的sha1对象在调用update()方法时,传入的字符串要先进行编码

即encode()

如果不编码会爆出下面的异常:

TypeError: Unicode-objects must be encoded before hashing


  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 这里是一份Python 3的字符串加密解密函数代码: def encrypt_string(string): string = ''.join(format(ord(i), 'b') for i in string) string = string + '0' * (8 - (len(string) % 8)) string = [string[i:i+8] for i in range(0, len(string), 8)] encrypted_string = '' for i in string: encrypted_string += chr(int(i, 2)) return encrypted_stringdef decrypt_string(encrypted_string): string = [format(ord(i), '08b') for i in encrypted_string] string = ''.join(string) string = [string[i:i+8] for i in range(0, len(string), 8)] decrypted_string = '' for i in string: decrypted_string += chr(int(i, 2)) return decrypted_string ### 回答2: 下面是一个使用Python实现的简单字符串加密解密函数代码: ```python def encrypt(text, key): encrypted_text = '' for char in text: encrypted_text += chr(ord(char) + key) return encrypted_text def decrypt(encrypted_text, key): decrypted_text = '' for char in encrypted_text: decrypted_text += chr(ord(char) - key) return decrypted_text text = input("请输入加密字符串:") key = int(input("请输入密钥(整数):")) encrypted_text = encrypt(text, key) print("加密结果为:", encrypted_text) decrypted_text = decrypt(encrypted_text, key) print("解密结果为:", decrypted_text) ``` 这段代码定义了两个函数:`encrypt`用于加密字符串,`decrypt`用于解密字符串加密过程,我们将字符串每个字符的ASCII码值加上密钥,生成加密后的字符;解密过程,我们将加密字符串每个字符的ASCII码值减去密钥,得到解密后的字符。 用户需要输入加密字符串和密钥(一个整数),然后分别输出加密结果和解密结果。 请注意,这段代码实现的加密解密算法非常简单,仅作为示例,请勿用于真正的加密需求。在实际应用,应该使用更加安全的加密算法和库。 ### 回答3: 以下是一个基于Python3的简单字符串加密解密函数代码: ```python def encrypt_string(string): encrypted = "" for char in string: encrypted += chr(ord(char) + 1) # 将每个字符的ASCII码加1来实现加密 return encrypted def decrypt_string(encrypted): decrypted = "" for char in encrypted: decrypted += chr(ord(char) - 1) # 将每个字符的ASCII码减1来实现解密 return decrypted # 测试加密解密函数 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) ``` 这段代码定义了两个函数,`encrypt_string`和`decrypt_string`,分别实现字符串加密和解密的功能。加密函数将输入字符串的每个字符的ASCII码加1,解密函数则将输入加密字符串的每个字符的ASCII码减1,从而实现加密和解密的转换。 在代码的最后部分,我们使用这两个函数来测试加密解密功能。首先定义一个原始字符串,然后使用`encrypt_string`函数对其进行加密,再使用`decrypt_string`函数对加密后的字符串进行解密,并输出结果。 以上就是一个简单的字符串加密解密函数的Python3代码。注意,这只是一个基本的实现,实际的加密解密算法可能会更加复杂和安全。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值