encryption - 以 HEX 加密为 AES 128 ECB
问题描述
我正在尝试使用openssl
将纯文本加密到AES 128 ECB
in 中HEX
。
使用纯文本11111111111111111111111111111111
和原始密钥00000000000000000000000000000000
,我正在尝试使用:
echo -n "11111111111111111111111111111111" | openssl enc -aes-128-ecb -K 00000000000000000000000000000000 -nosalt | xxd -p
但这给了我:
b6de54f9a78637d1eb523ca7201589f4b6de54f9a78637d1eb523ca72015
89f40143db63ee66b0cdff9f69917680151e
我应该得到:
FFA3C7ED04710B98067DAE6815E2751F
我究竟做错了什么?
解决方案
您忘记对明文进行十六进制解码。此外,OpenSSL 默认为 PKCS#7 填充,因此如果您需要 16 字节输出来获得 16 字节输入,则应忽略最后一个 16 字节/32 十六进制字符块。
推荐阅读
- autodesk-forge - Forge vuer 不渲染 revit 模型
- python - Geopy reverse 返回“city”、“district”和“borough”的键错误,尽管它位于 JSON 响应对象中
- sql - 使用 T-SQL 将 JSON 格式的数据导出到 SQL 的最佳方法是什么?
- docker - 在 Windows 10 + WSL2 上运行 nvidia-docker
- excel - 如何在excel VBA中使用匹配大小写
- python - 尝试在 python 中加载 bmp 图像时,数组列的顺序未对齐
- python - 在 heroku 上托管我的应用程序时(特别是在尝试迁移到 heroku 时)我收到一条错误消息,提示找不到模块
- python - 为注销 ami 编写 lambda 函数,并删除相应的快照
- azure - 如何增加 Azure Data Lake 执行时间限制
- javascript - javascript: css-loader 启动 webpack 时出错