十行 Python 代码,使用 OTP 实现对文件的加密解密

  发布时间:2025-12-07 20:45:27   作者:玩站小弟   我要评论
不知道你是否相信,只需 10 行代码,就可以使用 Python 100% 安全地加密文件。这背后的原理就是 OTP。原理OTP 就是 One-time password,翻译过来就是一次性密码。它的原 。

不知道你是代对文否相信 ,只需 10 行代码,码使就可以使用 Python 100% 安全地加密文件。实现这背后的加密解密原理就是 OTP。

原理

OTP 就是代对文 One-time password ,模板下载翻译过来就是码使一次性密码。它的实现原理非常简单 ,加密的加密解密过程就是明文和密钥(key)进行异或,得到密文,源码下载代对文而解密的码使过程就是密文和密钥(key)异或 ,得到明文  。实现举例如下  :

加密 :

解密 :

理论上,加密解密基于以下假设,代对文这个加密被认为是码使牢不可破的高防服务器  :

密钥是真正随机的密钥长度与信息长度相同密钥永远不会全部或部分重复使用密钥 key 很安全,不会公开应用 :加密文件

如果自己有一个私密的实现文件 ,那么完全可以使用 OTP 来加密 ,密钥保存在自己手里 ,很安全 。香港云服务器话不多说,直接上代码 :

加密文件 :

复制import os

def encryption(file): toBeEncryptedFile = open(file, rb).read() size = len(toBeEncryptedFile) otpKey = os.urandom(size) with open(file.split(.)[0] + .key, wb) as key: key.write(otpKey) encryptedFile = bytes (a ^ b for (a, b) in zip(toBeEncryptedFile, otpKey)) with open(file, wb) as encrypted: encrypted.write(encryptedFile)1.2.3.4.5.6.7.8.9.10.

这段代码一共 10 行,密钥 optKey 随机生成并保存在文件中 ,然后用这个密钥加密文件 ,当需要加密文件时 ,这样调用 encryption 函数 :

复制if __name__ == "__main__": encryption("/Users/aaron/Downloads/1/银行卡.JPG")1.2.

成功执行代码后,我们无法再预览或打开我们的图像,亿华云因为它现在是加密的。此外 ,我们的文件夹中有一个新的密钥文件“银行卡.key” 。

现在 ,源码库我们来解密它  。

解密文件只需要 6 行代码:

复制def decryption(file, otpKey): encryptedFile = open(file, rb).read() otpKey = open(otpKey, rb).read() decryptedFile = bytes (a ^ b for (a, b) in zip(encryptedFile, otpKey)) with open(file, wb) as decrypted: decrypted.write(decryptedFile)1.2.3.4.5.6.

这样调用 :

复制if __name__ == "__main__": # encryption("/Users/aaron/Downloads/1/银行卡.JPG") decryption("/Users/aaron/Downloads/1/银行卡.JPG", "/Users/aaron/Downloads/1/银行卡.key")1.2.3.

这样就完成了解密:

完整代码

复制import os

def encryption(file): toBeEncryptedFile = open(file, "rb").read() size = len(toBeEncryptedFile) otpKey = os.urandom(size) with open(file.split(".")[0] + ".key", "wb") as key: key.write(otpKey) encryptedFile = bytes(a ^ b for (a, b) in zip(toBeEncryptedFile, otpKey)) with open(file, "wb") as encrypted: encrypted.write(encryptedFile)def decryption(file, otpKey): encryptedFile = open(file, "rb").read() otpKey = open(otpKey, "rb").read() decryptedFile = bytes(a ^ b for (a, b) in zip(encryptedFile, otpKey)) with open(file, "wb") as decrypted: decrypted.write(decryptedFile)if __name__ == "__main__": # encryption("/Users/aaron/Downloads/1/银行卡.JPG") decryption("/Users/aaron/Downloads/1/银行卡.JPG", "/Users/aaron/Download1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.
  • Tag:

相关文章

  • 首席信息安全官和首席风险官最关注的威胁和挑战是什么?

    塔塔咨询服务公司在日前发布的一份调查报告中指出,很多企业的网络高管可能没有充分优先考虑价值链中的漏洞威胁,而这些漏洞超出了他们企业的直接边界。当受访者被问及哪些企业在未来几年会遭受更多的网络攻击时,生
    2025-12-07
  • 2亿Twitter用户的数据被公开,仅需2美元即可下载

    近日,一个包含超过2亿Twitter用户数据的文件在一个流行的黑客论坛上发布,价格约为2美元。 目前,已经证实了泄露中列出的诸多用户数据的有效性。自2022年7月22日以来,攻击者一直在各种在线黑客论
    2025-12-07
  • 别怪ChatGPT,AI黑客攻击早已开始

    ChatGPT的火爆出圈,让大众看到了AI表现惊艳的一面,但也让网络攻击有了更多可能性。 近日有研究团队发现,人工智能ChatGPT存在一定风险,它可以为黑客提供有关如何入侵网站的分步说
    2025-12-07
  • Reveton勒索软件即服务如何改变了网络安全格局

    Reveton勒索软件出现在2012年,它被认为是有史以来第一个勒索软件即服务(RaaS)。从那时起,RaaS使拥有基本技术技能的网络攻击团伙能够无差别地发动攻击。现在,几乎任何人都可以创建高效的恶意
    2025-12-07
  • 网络安全知识:什么是威胁管理?

    威胁管理是网络安全专业人员用来防止网络攻击、检测网络威胁和响应安全事件的过程为什么威胁管理很重要?大多数安全团队都面临着信息碎片化的问题,这可能会导致安全运营出现盲点。无论存在哪里,盲点都会损害团队及
    2025-12-07
  • 工业物联网攻击是否对企业构成严重威胁?

    工业物联网如今正在迅速得到采用,并为企业提供了更广阔的视野。企业如何在物联网领域确保强大的安全性?什么是工业物联网(IIoT)?工业物联网指的是在工业环境中使用互联设备、传感器和机器。这些设备可以监控
    2025-12-07

最新评论