JAVA -SM4 ECB加密

这篇具有很好参考价值的文章主要介绍了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()注册。

第三步代码实现文章来源地址https://www.toymoban.com/news/detail-568118.html

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");
    }
}

到了这里,关于JAVA -SM4 ECB加密的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C# 实现 国密SM4/ECB/PKCS7Padding对称加密解密

    C# 实现 国密SM4/ECB/PKCS7Padding对称加密解密,为了演示方便本问使用的是Visual Studio 2022 来构建代码的 1、新建项目,之后选择 项目 鼠标右键选择  管理NuGet程序包管理,输入  BouncyCastle 回车 添加BouncyCastle程序包 2、代码如下:CBC模式 代码如下:ECB模式 3、运行 4、SM4密码算法

    2024年02月11日
    浏览(66)
  • 国密SM4对称加密Java加解密

    提示:国密SM4对称加密Java加解密 国家密码管理局 参考博文 SM4.0(原名SMS4.0)是中华人民共和国政府采用的一种分组密码标准,由国家密码管理局于2012年3月21日发布。相关标准为“GM/T 0002-2012《SM4分组密码算法》(原SMS4分组密码算法)”。 SM4 代码如下(示例): 在密码学中

    2024年02月11日
    浏览(54)
  • 使用 Java Bouncy Castle实现国密算法SM4、SM3以及SM2的加密

    国密算法的实现借助了Java库函数 Bouncy Castle,加密库安装使用教程请参考链接 SM4,又称为商密算法,是一种分组密码算法,于2012年由中国密码技术研究中心(中国密码学会成员)发布,目前已成为我国国家密码算法,并在多个领域得到了广泛的应用。SM4算法采用了32轮迭代结

    2024年02月16日
    浏览(68)
  • java运用SM4国密算法对文件的加密与解密的实现

    首先我们在idae开发工具导入导入pom.xml的两个必要依赖  jar包下载地址:百度网盘 请输入提取码   npn8  图上systemPath 为jar包的文件路径,我们需要使用以下的路径存储jar包。(也可以自己设置) java包的文件路径如图所示 然后创建所需要加密的文件 ,需要加密的文件内容,

    2024年03月27日
    浏览(54)
  • 国密(GmSSL)算法SM4之ECB模式

    本文将介绍如何使用java实现SM4算法的ECB模式加解密,并提供相应的代码示例。加解密底层实现基于gmssl c 实现,通过java native方式调用。参考关志老师的国密算法实现:https://github.com/guanzhi/GmSSL SM4是一种国密对称加密算法。 ECB(Electronic Codebook)模式是一种基本的分组密码工作

    2024年02月05日
    浏览(40)
  • SM1、SM2、SM3、SM4、同态加密、密态计算、隐私计算和安全多方计算的概念

    为了保障商用密码的安全性,国家密码局制定了一系列密码标准,包括:SM1(SCB2)、SM2、SM3、SM4、SM7、SM9、祖冲之密码算法(ZUC) 等。 SM1、SM4、SM7、祖冲之密码(ZUC)是 对称算法 。 SM2、SM9是 非对称算法 。 SM3是 哈希算法 。 SM1、SM7算法不公开,调用该算法时,需要通过 加

    2024年02月03日
    浏览(38)
  • 密码算法(SM1、SM2、SM3、SM4、同态加密、密态计算、隐私计算和安全多方计算)

    SM1、SM2、SM3和SM4 为了保障商用密码的安全性,国家密码局制定了一系列密码标准,包括:SM1(SCB2)、SM2、SM3、SM4、SM7、SM9、祖冲之密码算法(ZUC) 等。 SM1、SM4、SM7、祖冲之密码(ZUC)是对称算法。 SM2、SM9是非对称算法。 SM3是哈希算法。 SM1、SM7算法不公开,调用该算法时,

    2024年02月03日
    浏览(44)
  • 探索密码学的未来:SM1、SM2、SM3、SM4、同态加密、密态计算、隐私计算和安全多方计算

    密码算法在现代通信与信息安全中发挥着至关重要的作用,SM1、SM2、SM3、SM4、同态加密、密态计算、隐私计算和安全多方计算等密码算法被广泛应用于各种信息安全领域。本篇博客将会为大家介绍这些密码算法,以及它们在信息安全中的作用和应用。 SM1、SM2、SM3、SM4是中国国

    2024年02月08日
    浏览(45)
  • SM4加密

    SM4加密方法,可以通过传递需要加密的明文和密钥来进行调用: 在这个示例中,我们使用了Bouncy Castle加密库来实现SM4加密。该方法使用了CBC模式,并使用随机生成的IV来增强安全性。我们将IV和密文组合成一个字节数组,并将其转换为十六进制字符串以便于输出和传输。 要使

    2024年02月11日
    浏览(35)
  • JAVA集成国密SM4

    国密算法概述:https://blog.csdn.net/qq_38254635/article/details/131801527 SM4对称算法 SM4 无线局域网标准的分组数据算法。对称加密,密钥长度和分组长度均为128位 ConfigBean.java ProviderSingleton.java SecretCommon.java Utils.java 测试类:Test.java 使用方法参考测试类即可。 使用KeyGenerator构建的秘钥长

    2024年02月10日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包