国密算法-SM4

2021-06-24  本文已影响0人  久伴我还是酒伴我
package com.yutian.tax.utils.bcprov.detail;

import cn.hutool.core.codec.Base64;
import cn.hutool.core.util.HexUtil;
import cn.hutool.crypto.Mode;
import cn.hutool.crypto.Padding;
import cn.hutool.crypto.symmetric.SM4;
import com.kingxunlian.tax.base.InvoiceLoggerFactory;
import org.slf4j.Logger;

/**
 * @author leijie.gao
 * @version 1.0.0
 * @ClassName SM4Util.java
 * @Description TODO
 * @createTime 2021年04月09日 15:57:00
 */
public class SM4Util {

    private static final Logger logger = InvoiceLoggerFactory.getLogger(SM4Util.class);

    /**
     * SM4加密
     */
    public static byte[] encrpt(byte[] content,byte[] key){
        SM4 sm4 = new SM4(Mode.ECB, Padding.PKCS5Padding,key);
        byte[] encrypt = sm4.encrypt(content);
        logger.info("加密内容:{}", Base64.encode(encrypt));
        return encrypt;
    }


    /**
     * SM4解密
     */
    public static byte[] decrpt(byte[] content,byte[] byte_key){
        SM4 sm4 = new SM4(Mode.ECB, Padding.PKCS5Padding,byte_key);
        byte[] decrypt = sm4.decrypt(content);
        logger.info("解密内容:{}",Base64.encode(decrypt));
        return decrypt;
    }



    public static void main(String[] args) {
        String c = "eyJpbnZvaWNlSW5mb21hdGlvbiI6ImEwOTFjMmU1MWIxNTUxYzMxZTgxMGE2MTFhZWFlMGQ2MjMwYjc2YTcxYTI0OTRmYzFhOWJjYTg4Y2YzNDE2NzM3YTQ0NDI2MGVkYTYxNjM4ZjI0YmI3ZGZhNmFjN2I3ZTAxNWRkMTAxM2EwYTRlOWFiMjE1Njk3ODBkNDJjZjU1ZWY1NzI4YmQwODE1NjRkNmY0NmRmZWEyNTQzNmRjMzFmODNmYmFiYjZmODE3MGQ5NGI2YWRkZjkxYmFmNmI1YjYwOWFlOWZlYTNiNmUwMmExMzI4NzU4YmMyZDExNmEwZTM1NzJmODk5M2JmYjJhZDY3OWRiZWVlZWJiNjY1ZjkzOWU1MDdjYjY5MzI1OTM2MWI1ODM2NWQxMGU2ZjRhZTNjNmNmMzI1MzVlNDgxZmZiZWNiNjdkNTI2M2Q5M2Q0ZDMxMjMxNGVmODg3MGFiMWJhNmZkNTc2NDc1ZDA2MWExZWRkMGY1ZTIyOTdkMWNmNjhhNGNmZTAxMmNiZDYwYjRiZWZhYmJiNGIxZGNhOTI2YzIxNDRiODllNzFlZjUyYmQ4NzhmMWNhOTJhNDJhYzdlMWNlZmYxNjI4MWJhN2JkZDI0ZDRjMzNmZmFkNzRkODdiODgzOWM5OWFmODExNzk0MDc4NzE0MzNjYmVjOTkyNzZjZjFmYTVlYzY0ODE3NzA5NjYyMjY1ZDg0NDdmYzEwNTlmYjg5MGE4MzBiNjA3ZDYyM2I5ZTYxOTg5MWZmNmM2OWM1NmI1ODUzNTgzZDNkNDI5OTA5MGI5MmU0YjFjM2I2OTZkMzk1YWMwNmE4ZDcwYzhjZDYwY2UzOGZjMDJlMzQ0ZTdlODUzMjAxYmVhMjM3Y2RkMDAxNzRkMzZiYWMzZDk2MDJjOTg3M2Y1MGZjNjEwNTBjNThhZDBkNmEzNGJmODBjMTI3YzdkODdiMGM1OWYyYTg5ZGE4ODNhNTllODA0N2RlNzFmYjEyMjlmMDIzNjFjNjUwYWQ2ZDhhZmU0YjQ3OTllMmMyMTdiNTBjNTlmMmE4OWRhODgzYTU5ZTgwNDdkZTcxZmIxMjI5OWIxOTg0MTk3NzlmMWQ3ZGI2ZGI2MDFhYzA3NjgwZjUyOTBkNjY2ZmYzZDZiODE1Y2U1MWE3MDNlZjBlMjI4MTlhZTNlMjBlMzUzMGU2MGI1YWI5MTE2ZTRlZjQxZDdhZmUxZWU2NWZkZDNmNTZlYjViZGE4MGI4NmNmYWZlNDRhNDUwOWUzOTUwMWY5MTg3NWJmMDI3NDU3YTg3ZDgzMTFmNjgwM2MwYTIyY2Y4YjIxNzU1NmM5NjRlNTEwZjJkYWY5MDU1ZTFhYzNlYzQ4MDYxNjVmMTBjNzhkMzdhOTQ0MjlkZWEzYzY5MDQ2ZDA0NDM4ODU5ZWQ0MzZkMDIwYjI1YmJkOThlYTI4ZTIwZDZhYjY0N2Q5MWY5ZDYxOWQ3Y2UzMDJlYTdjYTA2MTkxMWI3ZjBmMWQ5MjU3N2E0NTllMTNlNjI5N2VkMzkxYjNiYWNhMjVhNTVjMTIzOTE2NDQzMDA4NjAxZTc5ZjQ3ZTZiN2M5ODFhMzVhNTIzMDU0YWZjOWNmYTMwMmFjZTExMzg1MGViMmE3ZjM4ZDc5ZTRhMzc4NjgyYzU4YTc3NGFiYzBlMDA2NWNkNGFmYTVhNmQzNTgwNmFkOTIxYWUzMGZkZmU5NWNiMjc5ZDI0OTMzMzhjYTMyMzM5Zjg1Y2YxYTZjNDExZDA1YzNjNGZiMDEzYzM3ZGU5NjQ2NGY2MmM1YjFhMmFhYzY2MmIwYzFkODExYzQ5ZTU5YjVhMzVjMWE4NTBhZGIxNDQxZDVkOWU3MGQ5NTFiNDE3NzBjMTc1NjljMDZhNmFjNGIyMTkzMDhmMjdiZWY0MjEwMDFmNzY0MmFhOTc2N2Y1Y2Y1YzNiODZkMGNjYmJhZjM2ZTNhNDQ3OGMzNTYwZDkwN2M0MzY2ZjRkNzcyNWI0YjM0ZWFiM2NmOGNhZjE2YzllYzA3OWI1OWMxMmE3NGRjYmU0ZGI2ZDAzZmExYjJhMzM1M2FjNWQ0MzBmZTk0OTNiMjk0OTcyYmNkNTQxZGNjZGVkOTAwOGYwNmJhYjBjZTRkZGNkOWJjN2E2NDVjNTY0MWZhOGU1ZmRmN2ViZmZjY2IzZTBhZTU2NjBjMzI4YTZhYTczZjBmNmJmZmVmZmY0ZDk0ZTIzMDVjMzI4NDc2MDQ5ZmMyZDUyOWVmYzhjNmY4NmFmZWYxMjk0MzA1OGFmMmM3ZjdmMWZmOGNlYTNjNmM2YzY4YzhjM2NhZTg4MjAyOTU2ZjdkN2JmMDQyNDE4YTUxMTA4MDZmYzhlYTI1ZTI5MjAzN2Y3MzNhNzVhNjJkNTFhYzM2MDE1MDIwZmJmODY4MzMyN2QyNWQxM2E5MzZkNGFlYmRlMTUzNTliZDg4MGU4MDgzMDViZTBmNDhiODkzYzc2ZDU2ZWM1Njg3OWQ3MWQ5MTNlYWQ4ZTdkNTIyYzc1ZTQxZmUwMDUzMGY4ODk1MzkiLCJzZXJpYWxOdW1iZXIiOiIxMzg2ODc5MTQyMDkxNDI3ODQwIiwidmVyc2lvbiI6NCwiZHJhd2VySUQiOiJhMzNjZTM3ZS04ZTZmLTQyOGUtOGQ2ZS0yOTY5MmFjN2Y2YzYifQ==,私钥:MIGTAgEAMBMGByqGSM49AgEGCCqBHM9VAYItBHkwdwIBAQQgQo7OiH/7PdMRwQkXmQaagDO6OcxU9rkPnK+JxuamqB+gCgYIKoEcz1UBgi2hRANCAAS1xMZ0nKWUnVtSLAYCvc7O6LGIvcXF9ZrgbYsRnQ+ltLarXuI83QhejzjrYPILTWBsjCLa8ZmwwibAyK2ZvG0N";
        String privateKey = "+vmbzeYM2cnsd2av3AvHRw==";
        byte[] ac = Base64.decode(privateKey);
        System.out.println(ac);
        byte[] a = decrpt(HexUtil.decodeHex(c),Base64.decode(privateKey));
        System.out.println(a);
    }
}
上一篇下一篇

猜你喜欢

热点阅读