首页 > 其他分享 >SM4加密

SM4加密

时间:2024-04-01 13:33:37浏览次数:19  
标签:cipherText 加密 String SM4 Cipher str byte NAME

org.bouncycastle.jce.provider.BouncyCastleProvider;
org.bouncycastle.pqc.math.linearalgebra.ByteUtils;
javax.crypto.Cipher;
javax.crypto.spec.SecretKeySpec;
java.security.Key;
java.security.Security;
/*入参:
str:
EPIDEMIC_KEY
*/
String ENCODING = "UTF-8";
String ALGORITHM_NAME = "SM4";
String ALGORITHM_NAME_ECB_PADDING = "SM4/ECB/PKCS5Padding";
Security.addProvider(new BouncyCastleProvider());
try {
    if (str != null && !"".equals(str)) {
        String cipherText = "";
        // 16进制字符串-->byte[]
        byte[] keyData = ByteUtils.fromHexString(EPIDEMIC_KEY);
        // String-->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[]-->hexString
        cipherText = ByteUtils.toHexString(cipherArray);
        System.out.println("cipherText:" + cipherText);
        return cipherText;
    } else {
        return str;
    }
} catch (Exception e) {
    return str;
}

 

标签:cipherText,加密,String,SM4,Cipher,str,byte,NAME
From: https://www.cnblogs.com/JojoMiss/p/18108222

相关文章

  • 抖音X-Bogus加密解析(全网最快)
     前言:    想着偷个懒,还是发现有想学习技术的兄弟,商量着把这个抖音的逆向给干一下,这个我都把要补的环境贴出来了,照着写上去不会嘛。有关xb的教学基本随处可见,苦思冥想后,还是暂时出一期教学,我们搞快点!直接一步写到位。                       ......
  • 加密软件VMProtect教程:使用脚本-功能
    VMProtect是新一代软件保护实用程序。VMProtect支持德尔菲、BorlandCBuilder、VisualC/C++、VisualBasic(本机)、VirtualPascal和XCode编译器。同时,VMProtect有一个内置的反汇编程序,可以与Windows和MacOSX可执行文件一起使用,并且还可以链接编译器创建的MAP文件,以快速选择......
  • 常见网络数据加密方式
    常见网络数据加密方式1.0单向散列加密这种加密方式的典型是MD5加密,优点:方便存储,损耗低缺点:存在暴力破解的可能散列加密的特点就是从明文到密文的不可映射性,导致我们无法根据加密算法设计出解密算法这种加密的解密方式就是明文到密文,密文有了,就可解密,复杂一点的密文解密可能......
  • CTF中各类加密密文区别
    收集CTF-MISC中常见的密码种类base16字典中包含0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、Fbase32打印字符大写字母(A-Z)和数字234567base36使用0–9和拉丁字母A–Z表示数字。base58数字、大写字母、小写字母,去除歧义字符0(零)、O(大写字母O)、I(大写字母i)、l......
  • 使用OpenEuler x86_64 实现Bouncycastle SM4加解密功能
    使用OpenEulerx86_64实现BouncycastleSM4加解密功能一、安装运行环境安装java和mavensudoyuminstalljava-17-openjdksudoyuminstallmaven安装完成后,你就可以在OpenEuler上使用Maven来管理Java项目了。二、创建项目工程在项目根目录下创建pom.xml文......
  • 基于DWT(离散小波变换)的图像加密水印算法,Matlab实现
           博主简介:专注、专一于Matlab图像处理学习、交流,matlab图像代码代做/项目合作可以联系(QQ:3249726188)       个人主页:Matlab_ImagePro-CSDN博客       原则:代码均由本人编写完成,非中介,提供有偿Matlab算法代码编程服务,不从事不违反涉及学术原则......
  • openGauss 数据加密存储
    数据加密存储可获得性本特性自openGauss1.1.0版本开始引入。特性简介提供对导入数据的加密存储。客户价值为客户提供加密导入接口,对客户认为是敏感信息的数据进行加密后存储在表内。特性描述openGauss提供加密函数gs_encrypt_aes128()、gs_encrypt()和解密函数gs_decrypt......
  • 某物登录表单加密
    之前分析过某物h5的以及小程序的搜索接口,就是一个aes,秘钥不固定,表单里把秘钥以及密文一起发过去,服务器解密后再把数据加密返回,客户端解密展示到页面上.这期是关于app的登录,密码登录声明本文章中所有内容仅供学习交流使用,不用于其他任何目的,不提供完整代码,抓包内容......
  • https加密过程
    1.对称加密与非对称加密在介绍https加密过程前,需要先简单了解下其中用到的加密算法。对称加密算法:用该密钥加密的数据,可以再用该密钥解密。性能高,速度快。常见的对称加密算法有DES,AES。非对称加密算法:生成一对密钥对,分别称为公钥、私钥。用公钥加密的数据只能由私钥解密。用私......
  • 如何给PDF文件加密?
    PDF作为一种常用的文档格式,本身具有很好的稳定性以及兼容性,被广泛应用于学习以及生活当中。然而,这也意味着PDF文件的安全性成为了一个不可忽视的问题。因此,进行PDF加密操作变得至关重要。那么有那些好用的pdf加密的工具呢?1、nitropdf.com这是一款功能强大的PDF编辑软件,你可以使......