原标题:国密SM4分组密码算法(对称加密)的JS和JAVA类库
作者:bluesbruce
来源:SegmentFault 思否社区
前言
本文SM4的java实现方法,在BC库(bouncycastle)的基础上做了简单的封装,JS方法在sm-crypto的基础上做的封装。
JAVA
加解密方法
org.bouncycastle
bcprov-jdk15on
1.68
import java.security.SecureRandom;
import java.security.Security;
import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;
import org.bouncycastle.jce.provider.BouncyCastleProvider;
/**
* 国密SM4分组密码算法工具类(对称加密)
*
GB/T 32907-2016 信息安全技术 SM4分组密码算法
*
* @author BBF
* @see GB/T
* 32907-2016
*/
public class Sm4Util {
private static final String ALGORITHM_NAME = "SM4";
private static final String ALGORITHM_ECB_PKCS5PADDING = "SM4/ECB/PKCS5Padding";
/**
* SM4算法目前只支持128位(即密钥16字节)
*/
private static final int DEFAULT_KEY_SIZE = 128;