SHA256加密算法python实现
时间: 2024-10-08 08:16:28 浏览: 10
在Python中,同样使用`hashlib`模块来实现SHA256加密算法。SHA256比MD5更安全,因为它生成的哈希值更长,且碰撞概率更低。下面是使用SHA256的例子:
```python
import hashlib
def sha256_encrypt(text):
"""
使用SHA256算法对文本进行加密
:param text: 需要加密的字符串
:return: 加密后的SHA256摘要
"""
sha256_obj = hashlib.sha256()
sha256_obj.update(text.encode('utf-8')) # 字符串转为字节并编码
return sha256_obj.hexdigest() # 返回16进制表示的SHA256值
# 示例
original_text = "Secure Hashing Algorithm"
encrypted_text = sha256_encrypt(original_text)
print(f"原始文本: {original_text}")
print(f"SHA256加密: {encrypted_text}")
```
这将输出SHA256算法加密后的结果。
相关问题
可以用python写一个sha256加密算法吗
是的,可以用 Python 写一个 sha256 加密算法。可以使用 Python 的 hashlib 库中的 sha256 类来实现。
示例代码如下:
```python
import hashlib
def sha256(str):
sha = hashlib.sha256()
sha.update(str.encode())
return sha.hexdigest()
print(sha256("hello world"))
```
如果你需要加盐加密,可以在消息的前面添加盐,在进行加密
```python
import hashlib
def sha256(str,salt):
sha = hashlib.sha256()
sha.update(salt.encode())
sha.update(str.encode())
return sha.hexdigest()
print(sha256("hello world","my salt"))
```
rsa加密算法python实现
可以使用Python自带的Cryptography库来实现RSA加密算法,代码如下:
```python
from cryptography.hazmat.primitives.asymmetric import rsa, padding
from cryptography.hazmat.primitives import serialization, hashes
# 生成密钥对
private_key = rsa.generate_private_key(
public_exponent=65537, key_size=2048)
public_key = private_key.public_key()
# 将密钥对序列化为PEM格式
private_pem = private_key.private_bytes(serialization.Encoding.PEM,
serialization.PrivateFormat.PKCS8,
serialization.NoEncryption())
public_pem = public_key.public_bytes(serialization.Encoding.PEM,
serialization.PublicFormat.SubjectPublicKeyInfo)
# 加密和解密
message = b"Hello, world!"
cipher_text = public_key.encrypt(
message, padding.OAEP(mgf=padding.MGF1(algorithm=hashes.SHA256()),
algorithm=hashes.SHA256(), label=None))
plain_text = private_key.decrypt(
cipher_text, padding.OAEP(mgf=padding.MGF1(algorithm=hashes.SHA256()),
algorithm=hashes.SHA256(), label=None))
```
希望这能够帮助你。请问还有其他问题吗?