SM4、AES、DES加解密算法性能比较

这篇具有很好参考价值的文章主要介绍了SM4、AES、DES加解密算法性能比较。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

SM4、AES、DES加解密算法性能比较

测试代码

  public void encryDecry() throws  Exception{
        SM4StringEncryptor sm4 = new SM4StringEncryptor();
        String path = "D:\\Users\\xlj\\Downloads\\sylog.txt";

        File file = new File(path);
        InputStreamReader reader = new InputStreamReader(new FileInputStream(path));

        BufferedReader br = new BufferedReader(reader);
        StringBuilder fileContent = new StringBuilder();

        String line = "";
        line = br.readLine();
        while (line != null) {
            line = br.readLine();
            fileContent.append(line);
        }
        System.out.println("文件原始大小:" + fileContent.length() /1024/1024 + "Mb");

        StringBuilder fileContent = new StringBuilder("xlj12442");
        long startTime = System.currentTimeMillis();

        String encryContent=  sm4.encrypt(fileContent.toString());
        System.out.println("sm4加密后:" + encryContent);
        System.out.println("sm4加密后文件大小:" + encryContent.length() /1024/1024 + "Mb");

        long endTime = System.currentTimeMillis();
        System.out.println("sm4加密耗时:" + (endTime - startTime) + "ms");

        String decryContent = sm4.decrypt(encryContent);
        System.out.println("sm4解密后:" + decryContent);
        System.out.println("sm4解密后文件大小:" + decryContent.length()  /1024/1024 + "Mb");
        long endTime1 = System.currentTimeMillis();
        System.out.println("sm4解密耗时:" + (endTime1 - endTime) + "ms");

        // aes
        byte[] key = SecureUtil.generateKey(SymmetricAlgorithm.AES.getValue()).getEncoded();
        SymmetricCrypto aes = new SymmetricCrypto(SymmetricAlgorithm.AES, key);

        long aesStartTime = System.currentTimeMillis();
        encryContent = aes.encryptHex(decryContent);
        long esaEndTimeEncry = System.currentTimeMillis();

        System.out.println("aes加密后:" + encryContent);
        System.out.println("aes加密后文件大小:" + encryContent.length() /1024/1024 + "Mb");
        System.out.println("aes加密耗时:" + (esaEndTimeEncry - aesStartTime) + "ms");


        long aesEncryStartTime = System.currentTimeMillis();
        decryContent = aes.decryptStr(encryContent, CharsetUtil.CHARSET_UTF_8);
        long aesEncryEndTime = System.currentTimeMillis();
        System.out.println("aes解密后:" + decryContent);
        System.out.println("aes解密后文件大小:" + decryContent.length()  /1024/1024 + "Mb");
        System.out.println("aes解密耗时:" + (aesEncryEndTime - aesEncryStartTime) + "ms");


        // des
        key = SecureUtil.generateKey(SymmetricAlgorithm.DESede.getValue()).getEncoded();
        SymmetricCrypto des = new SymmetricCrypto(SymmetricAlgorithm.DESede, key);


        long desStartTime = System.currentTimeMillis();
        encryContent = des.encryptHex(decryContent);
        long desEndTimeEncry = System.currentTimeMillis();

        System.out.println("des ede加密后:" + encryContent);
        System.out.println("des ede加密后文件大小:" + encryContent.length() /1024/1024 + "Mb");
        System.out.println("des ede加密耗时:" + (desEndTimeEncry - desStartTime) + "ms");


        long desEncryStartTime = System.currentTimeMillis();
        decryContent = des.decryptStr(encryContent, CharsetUtil.CHARSET_UTF_8);
        long desEncryEndTime = System.currentTimeMillis();
        System.out.println("des ede解密后:" + decryContent);
        System.out.println("des ede解密后文件大小:" + decryContent.length()  /1024/1024 + "Mb");
        System.out.println("des ede解密耗时:" + (desEncryEndTime - desEncryStartTime) + "ms");*/

    }

性能比较结果

加密算法 文件大小 加密耗时(ms) 解密耗时(ms)
SM4 5M 1596 841
AES 5M 201 447
DES 5M 317 669
SM4 620KB 689 172
AES 620KB 109 186
DES 620KB 53 132
SM4 36KB 487 34
AES 36KB 20 57
DES 36KB 9 14
SM4 6Bytes 505 0
AES 6Bytes 13 24
DES 6Bytes 1 0

sm4 性能,后端,算法,java,开发语言

sm4 性能,后端,算法,java,开发语言

sm4 性能,后端,算法,java,开发语言

sm4 性能,后端,算法,java,开发语言

sm4 性能,后端,算法,java,开发语言

sm4 性能,后端,算法,java,开发语言

sm4 性能,后端,算法,java,开发语言

sm4 性能,后端,算法,java,开发语言文章来源地址https://www.toymoban.com/news/detail-539601.html

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

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

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

相关文章

  • 国密算法-SM4加解密工具类

    运行结果:

    2024年02月11日
    浏览(52)
  • 国密算法 SM4 加解密 java 工具类

    👑 博主简介:知名开发工程师 👣 出没地点:北京 💊 2023年目标:成为一个大佬 ——————————————————————————————————————————— 版权声明:本文为原创文章,如需转载须注明出处,喜欢可收藏! 我国国家密码管理局陆续发

    2024年02月11日
    浏览(39)
  • 【IC卡 国密SM4算法 密钥分散,加解密,MAC计算】

    在这里记录一下工作中调查国密算法SM4过程中掌握的心得体会。 对基于 SM4 的分散算法的描述。 密钥分散算法简称 Diversify,是指将一个双长度的密钥 MK,对分散数据进行处理,推导出双长度的密钥 DK。 将分散数据的 8 个字节,作为输入数据的左半部分: 将分散数据的 8 个字

    2024年02月07日
    浏览(75)
  • 保护数据隐私:深入探索Golang中的SM4加密解密算法

    最近做的项目对安全性要求比较高,特别强调: 系统不能涉及MD5、SHA1、RSA1024、DES高风险算法。 那用什么嘞?甲方: 建议用国产密码算法SM4。 擅长敏捷开发(CV大法)的我,先去GitHub找了开源项目、又去网络上找了一些教程,但是或多或少都有些问题: 比如 golang.org/x/cryp

    2024年02月10日
    浏览(97)
  • 密码学之对称加密体系(2):AES、SM4的 S 盒具体算法的实现

    🔥点击进入【硬件安全】社区,查看更多精彩内容🔥 🔥点击查看《硬件安全》系列文章🔥 📢  声明 : 🥭 作者主页:【摆渡沧桑的CSDN主页】。 ⚠️ 未经作者允许,禁止转载。 ⚠️ 本文为非盈利性质,目的为个人学习记录及知识分享。因能力受限,存在知识点分析不

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

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

    2024年03月27日
    浏览(54)
  • 前端SM4加密解密

    前后端加密一致,如果不一致就是key有问题 调用方法: sm4.js文件

    2024年04月25日
    浏览(58)
  • Java之SM4解密与解密

    在线加密工具链接  在线SM4国密加密/解密—LZL在线工具 在线SM4国密加密/解密 https://lzltool.cn/SM4 根据项目选择相应数据格式  pom.xml引入一下jar包 实现SM4加密和解密代码部分

    2024年02月06日
    浏览(34)
  • java实现国密SM4的加密和解密方式(即时通讯的消息对话加密采用SM2还是SM4)

    1.对于即时通讯的消息对话加密采用SM2还是SM4更合适? 对于即时通讯的消息对话加密,建议采用SM4对称加密算法,而不是SM2非对称加密算法。 SM2主要用于数字签名和密钥交换,其加密速度比SM4慢,而且SM2不太适合对长消息进行加密,因为它只能对比较短的数据块进行加密,这

    2024年02月07日
    浏览(82)
  • 【Java加解密系列】- SM4加解密

    之前文章介绍过SM2生成密钥和加解密的代码实现过程,这篇文章主要介绍下SM4对称加密算法的代码实现,依然还是引用的BC库。代码实现比较简单,直接上代码: 跑个测试用例试一下: 输出结果如下:

    2024年02月05日
    浏览(42)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包