当前位置: 首页 > wzjs >正文

网站编程代码百度入驻

网站编程代码,百度入驻,上海网站开发怎么做,郑州做网站推广哪家好环境 OpenSSLPython 使用 OpenSSL 加密 1. 生成 AES 密钥和 IV 强烈推荐使用方法一(Python secrets 模块),因为它更安全。 方法一: Python 的 secrets 模块(安全方式) 不要使用 OpenSSL 的 rand 命令直接生成密钥…

环境

  • OpenSSL
  • Python

使用 OpenSSL 加密

1. 生成 AES 密钥和 IV

强烈推荐使用方法一(Python secrets 模块),因为它更安全。

方法一: Python 的 secrets 模块(安全方式)
  • 不要使用 OpenSSL 的 rand 命令直接生成密钥和 IV 用于生产环境。 尽管 openssl rand 可以生成随机数,但它可能不符合密码学安全的要求。

  • 推荐方法: 使用更安全的随机数生成器,例如 Python 的 secrets 模块:

    import secrets
    import binascii# 生成 256 位 AES 密钥(32 字节)
    key = secrets.token_bytes(32)
    key_hex = binascii.hexlify(key).decode()  # 转换为十六进制字符串# 生成 128 位 IV(16 字节)
    iv = secrets.token_bytes(16)
    iv_hex = binascii.hexlify(iv).decode()  # 转换为十六进制字符串print("AES Key (Hex):", key_hex)
    print("IV (Hex):", iv_hex)
    
  • secrets.token_bytes(nbytes) 生成 nbytes 个密码学安全的随机字节。

  • binascii.hexlify(data) 将字节数据转换为十六进制字符串。

  • 保存: 将生成的密钥和 IV 安全地保存起来(例如,使用密码管理器)。

方法二: 直接使用 OpenSSL 的 rand 命令(不推荐)
openssl rand -hex 32  # 生成 256 位 AES 密钥(32 字节)
openssl rand -hex 16  # 生成 128 位 IV(16 字节)
  • openssl rand -hex <长度> 使用 OpenSSL 的随机数生成器生成指定长度的十六进制字符串。
  • 保存密钥和 IV: 将生成的密钥和 IV 安全地保存起来(例如,存储在密码管理器中)。

2. 加密

openssl enc -aes-256-cbc -pbkdf2 -iter 100000 -in plaintext.txt -out ciphertext.bin -K $(cat key.txt) -iv $(cat iv.txt)
  • -pbkdf2 使用 PBKDF2 密钥派生函数。
  • -iter 100000 设置迭代次数为 100000(建议至少 10000,可以根据需要调整)。
  • -K $(cat key.txt) 从文件 key.txt 中读取 AES 密钥(假设你已将密钥保存在 key.txt 文件中)。
  • -iv $(cat iv.txt) 从文件 iv.txt 中读取 IV(假设你已将 IV 保存在 iv.txt 文件中)。
  • 去掉了-salt: 当使用-pbkdf2的时候,不再需要-salt
  • 为什么要从文件中读取密钥和 IV?
    • 安全: 避免将密钥和 IV 直接写在命令行中,防止泄露(例如,通过命令行历史记录)。
    • 方便: 方便管理和重复使用密钥和 IV。

3. Base64 编码

将密文转换为文本格式(用于生成条形码),需要进行 Base64 编码:

openssl base64 -in ciphertext.bin -out ciphertext.txt

4. 生成条形码

  • 使用在线条形码生成器(如 https://barcode.tec-it.com/en)将 Base64 编码后的密文生成条形码图片。
  • 选择条形码类型(如 Code 128),将 Base64 编码后的密文粘贴到输入框中,生成条形码图片。

安全传输密钥和密文

1. 安全传输密钥:

  • 重要: 密钥和 IV 的安全至关重要!绝对不要通过不安全的渠道(如微信、邮件 💀)直接发送。
  • 安全方案:
    • 线下告知: 如果条件允许,线下口头告知或使用纸条传递。
    • 加密通信工具: 使用 Signal、Wire 等端到端加密的通信工具。
    • 密钥交换协议: 如果对密码学有一定了解,可以使用 Diffie-Hellman 等密钥交换协议。
    • 密钥文件: 可以将密钥和IV存放在一个文件中, 使用 GPG 加密后发送.

2. 发送条形码:

  • 将生成的条形码图片通过微信等方式发送给你的朋友。这步可以用微信了。😇

解密方式

1. 解密

openssl enc -d -aes-256-cbc -in ciphertext.bin -out plaintext.txt -K $(cat key.txt) -iv $(cat iv.txt) -pbkdf2 -iter 100000
  • 注意:
    • 解密命令与加密命令 基本相同,只是将 -enc 改为 -d(表示解密)。
    • -pbkdf2-iter 参数必须与加密时 完全一致
    • -K-iv 参数仍然从文件中读取密钥和 IV。

2. Base64 解码

openssl base64 -d -in ciphertext.txt -out ciphertext.bin

完整的流程总结

  1. 生成强密钥和 IV:

    • 使用 Python 的 secrets 模块。
    • 将密钥和 IV 保存到安全的文件中(例如,key.txtiv.txt), 或者密码管理器中。
  2. 加密:

    openssl enc -aes-256-cbc -pbkdf2 -iter 100000 -in plaintext.txt -out ciphertext.bin -K $(cat key.txt) -iv $(cat iv.txt)
    
    openssl base64 -in ciphertext.bin -out ciphertext.txt
    
  3. 解密:

    openssl enc -d -aes-256-cbc -in ciphertext.bin -out plaintext.txt -K $(cat key.txt) -iv $(cat iv.txt) -pbkdf2 -iter 100000
    
    openssl base64 -d -in ciphertext.txt -out ciphertext.bin
    

注意安全, HAVE FUN! 👀

http://www.dtcms.com/wzjs/50813.html

相关文章:

  • 思途建站seo在线短视频发布页运营
  • 武汉做旅游教育的公司网站百度指数排名
  • 好的网站你知道怎么卸载windows优化大师
  • 做网站包括图片设计吗交换链接或称互惠链接
  • 做城市网站的标语广东短视频seo搜索哪家好
  • 动易6.8网站头宁波seo快速优化教程
  • 做静态页面的网站怎样把产品放到网上销售
  • 手机网站解决方案网络科技
  • 我要在附近找工作sem优化策略
  • 2014苏州建设银行招聘网站免费网站怎么做出来的
  • 网站建设流程表全媒体广告代理加盟
  • 临沂做网站价格seo网站推广招聘
  • 网站核查怎么抽查怎么弄推广广告
  • magento网站开发公司页面设计
  • wordpress多久学会东莞企业网站排名优化
  • 网站建设服务器介绍图片网络营销成功案例介绍
  • 鞍山做网站团队怎样在网上推广自己的产品
  • 青岛做门户网站公司推广关键词排名方法
  • 做网站开发要安装哪些软件2022年可以打开的网址
  • 口腔医院网站建设企业网站设计价格
  • 企业如何在自己的网站上做宣传seo外包网站
  • 广告去哪个网站做微信社群营销怎么做
  • 天津网站优化公司哪家专业win优化大师有免费版吗
  • b2b的典型网站整合营销推广
  • 丰台网站建设报价杭州网站运营十年乐云seo
  • 通辽做网站制作公司济南seo关键词排名工具
  • 广州商城网站建设seo的中文意思是什么
  • 怎么做属于自己的领券网站上海网络推广外包
  • 做网站软件是什么下载网站制作和推广
  • 建网站教程视频下载百度不收录网站怎么办