请用shell OpenSSL写一段aes-128-ecb pkcs5padding的加解密代码
时间: 2023-06-09 10:02:04 浏览: 291
好的,这里是使用Shell OpenSSL写的aes-128-ecb pkcs5padding的加解密代码:
加密代码:
```
#!/bin/bash
# 待加密的字符串
orig_str="Hello, world!"
# 加密的密钥,16字节
key="1234567890123456"
# 填充方式
padding="pkcs5"
# 使用 echo 命令将原始字符串转成二进制数据并进行加密,输出加密后的二进制数据
echo -n "$orig_str" | openssl enc -aes-128-ecb -K "$key" -$padding -nopad | xxd -p
```
解密代码:
```
#!/bin/bash
# 待解密的二进制数据
cipher_hex="3d4b739a4b0f59a72cd7debacecca8c343b2213812c0e9b9a05852d324589cea"
# 解密的密钥,16字节
key="1234567890123456"
# 填充方式
padding="pkcs5"
# 将两个16进制数拼接成一个字节,并进行解密,输出解密后的字符串
echo -n "$cipher_hex" | sed 's/\(..\)/\1 /g' | xxd -r -p | openssl enc -d -aes-128-ecb -K "$key" -$padding
```
注意,为了避免在加解密过程中引入额外的字符,需要注意使用echo命令输出时使用-n参数,即不自动添加换行符。在加密后输出的结果是16进制的字符串,可以使用xxd命令进行转换。在解密前需要将16进制的字符串转换成二进制数据,然后再进行解密。在转换时需要注意替换掉16进制字符串中的空格。
阅读全文