数据的加解密

分类

  • 对称加密算法
  • 非对称加密算法

特点

  • 对称加密算法 :
    • 加密效率高 !
    • 加密和解密都使用同一款密钥
      但是有一个问题 : 密钥如何从服务端发给客户端?
      (假如你直接先将密钥发给对方,要是在过程中被黑客技术破解了,那后面的消息也就泄漏了)
      (后边给出一个解决办法)
  • 非对称加密算法 :
    • 加密复杂,效率低,但是非常安全 !
    • 公钥和私钥一一对应,公钥加密的东西只能由私钥解密 ; 私钥加密的东西只能由公钥解密

关于上面这句话,你可以有疑惑:不是说 : 公钥用于加密数据,私钥用于解密数据 ? 怎么公钥也解析私钥了?

公钥加密(使用公钥加密数据):使用公钥加密的数据只能由相应的私钥解密。这意味着只有拥有私钥的人可以解密公钥加密的数据。公钥用于加密数据的过程,而私钥用于解密数据的过程。
私钥加密(使用私钥加密数据):使用私钥加密的数据可以使用相应的公钥进行解密。但是,这种加密方式通常用于数字签名,其中私钥用于对数据进行
签名
,而相应的公钥用于验证签名的有效性

业务的使用

我们可以将对称加密算法非对称加密算法,让效率最大化 : (兼顾安全性和效率) ->

我们可以使用非对称加密算法中的公私钥对称加密算法中的密钥进行加密后,再传给对方,然后再使用对称加密算法,这样数据的加解密的效率是最高的!

补充

在非对称加密中,公钥和私钥是成对生成的密钥对。其中,公钥用于加密数据,私钥用于解密数据。公钥可以公开传播给所有人,而私钥必须保密。

公钥不需要保密的原因是,它只能用于加密数据验证数字签名,而无法用于解密加密的数据即使其他人知道了公钥,他们也无法通过公钥来获取原始数据

私钥需要保密的原因是,它是用于解密数据的关键。只有拥有私钥的人才能够解密使用公钥加密的数据。如果私钥暴露给其他人,那么他们就可以解密加密的数据,这将导致数据的安全性受到威胁。

因此,公钥不需要保密,可以公开传播给任何人,而私钥必须严格保密,只能由密钥的拥有者持有和使用。这种非对称的密钥对保证了数据的机密性和完整性。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
在Python中进行数据解密,可以使用各种密算法和库来实现。以下是一些常用的密算法和对应的库: 1. 对称密算法: - AES算法:使用`pycryptodome`库进行解密,示例代码请参考前面提到的AES CBC模式密示例。 - DES算法:使用`pycryptodome`库进行解密,示例代码类似于AES的示例,只需将`AES`替换为`DES`即可。 2. 非对称密算法: - RSA算法:使用`cryptography`库进行解密。 ```python from cryptography.hazmat.primitives import serialization, hashes from cryptography.hazmat.primitives.asymmetric import padding from cryptography.hazmat.backends import default_backend # 生成公钥和私钥 private_key = rsa.generate_private_key( public_exponent=65537, key_size=2048, backend=default_backend() ) public_key = private_key.public_key() # 数据 data = b"Hello, World!" encrypted_data = public_key.encrypt( data, padding.OAEP( mgf=padding.MGF1(algorithm=hashes.SHA256()), algorithm=hashes.SHA256(), label=None ) ) # 解密数据 decrypted_data = private_key.decrypt( encrypted_data, padding.OAEP( mgf=padding.MGF1(algorithm=hashes.SHA256()), algorithm=hashes.SHA256(), label=None ) ) print("解密后的数据:", decrypted_data) ``` 3. 散列算法(哈希函数): - MD5算法:使用`hashlib`库进行散列。 ```python import hashlib data = "Hello, World!".encode('utf-8') hashed_data = hashlib.md5(data).hexdigest() print("散列后的数据:", hashed_data) ``` 这些是一些常用的密算法和库,可以根据具体需求选择适合的密算法和相应的库进行数据解密操作。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

踏过山河,踏过海

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值