0


JAVA -SM4 ECB加密

前言:根据网络安全法要求,现在对数据存储、口令安全要求越来越严格,对技术人员编码规范要求愈加严苛,推出国密算法等政策要求

sm4-ecm举例说明

第一步引入包提示错误

import org.bouncycastle.jce.provider.BouncyCastleProvider;
import org.bouncycastle.pqc.math.linearalgebra.ByteUtils;

第二步:pom.xml依赖如下

<dependency>
    <groupId>org.bouncycastle</groupId>
    <artifactId>bcprov-jdk15to18</artifactId>
    <version>1.68</version>
</dependency>

说明如下:

BouncyCastle是一个开源的第三方算法提供商。

BouncyCastle提供了很多Java标准库没有提供的哈希算法和加密算法。

使用第三方算法前需要通过Security.addProvider()注册。

第三步代码实现

public class SM4 {
    /**
     * sm4加密整合
     */
    public static String tet(String str) {
        String ENCODING = "UTF-8";
        String ALGORITHM_NAME = "SM4";
        String ALGORITHM_NAME_ECB_PADDING = "SM4/ECB/PKCS5Padding";
        String EPIDEMIC_KEY = "4d18850d763e8748ff2f8d83530e0cf2";
        Security.addProvider(new BouncyCastleProvider());
        try {
            if(str != null && !"".equals(str)){
                String cipherText = "";
                // 16进制字符串--&gt;byte[]
                byte[] keyData = ByteUtils.fromHexString(EPIDEMIC_KEY);
                // String--&gt;byte[]
                byte[] srcData = str.getBytes(ENCODING);
                // 加密后的数组
                Cipher cipher = Cipher.getInstance(ALGORITHM_NAME_ECB_PADDING, BouncyCastleProvider.PROVIDER_NAME);
                Key sm4Key = new SecretKeySpec(keyData, ALGORITHM_NAME);
                cipher.init(Cipher.ENCRYPT_MODE, sm4Key);
                byte[] cipherArray = cipher.doFinal(srcData);
                // byte[]--&gt;hexString
                cipherText = ByteUtils.toHexString(cipherArray);
                System.out.println("cipherText:"+cipherText);
                return cipherText;
            }else{
                return str;
            }
        } catch (Exception e) {
            return str;
        }
    }

    public  static void main(String[] args) {
        tet("1661224949606");
    }
}
标签: 安全

本文转载自: https://blog.csdn.net/bingmei_2016/article/details/128863598
版权归原作者 暴走的YH 所有, 如有侵权,请联系我们删除。

“JAVA -SM4 ECB加密”的评论:

还没有评论