shell openssl加解密字符串
时间: 2023-09-17 10:07:54 浏览: 172
使用 OpenSSL 命令行工具可以进行加解密字符串。以下是示例命令:
1. 加密字符串
```
echo "Hello, world!" | openssl aes-256-cbc -a -salt -pass pass:mysecretpassword
```
其中,`-a` 表示使用 Base64 编码输出,`-salt` 表示加盐,`-pass pass:mysecretpassword` 表示使用密码 `mysecretpassword` 进行加密。
2. 解密字符串
```
echo "U2FsdGVkX19Cj7C9xGJY5jXuZgjN9Iv4yieeRr6VH9g=" | openssl aes-256-cbc -a -d -salt -pass pass:mysecretpassword
```
其中,`-d` 表示解码 Base64 输出,其他参数与加密命令相同。
注意:在实际使用中,请替换密码为自己的密码,避免泄露。
相关问题
请用shell OpenSSL写一段aes-128-ecb pkcs5padding的加解密代码
好的,这里是使用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进制字符串中的空格。
// 创建AES加密器 Cipher cipher = Cipher.getInstance(AES_ECB); SecretKeySpec secretKeySpec = getSecretKeySpec(key); cipher.init(Cipher.DECRYPT_MODE, secretKeySpec); // 解密字节数组 byte[] decryptedBytes = cipher.doFinal(textBytes); // 将明文转换为字符串 return new String(decryptedBytes, StandardCharsets.UTF_8);准换为shell脚本
很抱歉,Java代码无法直接转换为Shell脚本,因为它们是不同的编程语言。但是,您可以使用Shell脚本中相应的命令来实现类似的功能。例如,使用openssl命令可以进行AES加密和解密。以下是一个示例脚本,它使用openssl进行AES解密:
```
#!/bin/bash
# 加密密钥
key="your_key_here"
# 待解密的文本
text="your_text_here"
# 将加密密钥转换为16进制格式
hex_key=$(echo -n $key | xxd -p)
# 对文本进行base64解码,并将结果保存到临时文件中
echo -n $text | base64 -d > temp.bin
# 使用openssl进行AES解密,并将结果保存到临时文件中
openssl aes-128-ecb -d -K $hex_key -in temp.bin -out temp.txt
# 读取解密后的文本,并打印到控制台上
cat temp.txt
# 删除临时文件
rm temp.bin temp.txt
```
请注意,此示例脚本仅用于演示目的,您需要根据实际情况进行调整和修改。
阅读全文