java sm4加密
时间: 2023-08-25 19:07:34 浏览: 130
在Java中使用SM4进行加密的代码如下所示:
```java
import cn.hutool.core.util.HexUtil;
import cn.hutool.crypto.Mode;
import cn.hutool.crypto.Padding;
import cn.hutool.crypto.symmetric.SM4;
public class SM4Test {
public static void main(String\[\] args) {
// key必须是16位
byte\[\] key = "1234567812345678".getBytes();//128bit(16byte)
byte\[\] plaintext = "1234567812345678".getBytes();//128bit(16byte)
SM4 sm4 = new SM4(Mode.ECB, Padding.NoPadding, key);
byte\[\] ciphertext = sm4.encrypt(plaintext);//库加密结果
System.out.println("库函数加密结果\t\t" + new String(HexUtil.encodeHex(ciphertext)));
// 输出结果:e863652f50ad5ed9fcc038b25deb07101db94f833e5b4cf024c8f8d61d70d48c
}
}
```
这段代码使用了HuTool库中的SM4算法进行加密。首先,需要将密钥和明文转换为字节数组。然后,创建一个SM4对象,并指定加密模式为ECB,填充方式为NoPadding,密钥为16字节的字节数组。接下来,调用encrypt方法对明文进行加密,得到密文的字节数组。最后,使用HexUtil将密文的字节数组转换为十六进制字符串进行输出。
#### 引用[.reference_title]
- *1* [SM4加密算法原理和简单实现(java)](https://blog.csdn.net/weixin_39055614/article/details/123703310)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
- *2* *3* [国密SM4对称加密Java加解密](https://blog.csdn.net/wcuuchina/article/details/128629652)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
阅读全文