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

文章知识点与官方知识档案匹配,可进一步学习相关知识
————————————————
版权声明:本文为CSDN博主「我爱看明朝」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u013565163/article/details/128047911

SM4、AES、DES加解密算法性能比较的更多相关文章

  1. DES加解密算法Qt实现

      算法解密qt加密table64bit [声明] (1) 本文源码 大部分源码来自:DES算法代码.在此基础上,利用Qt编程进行了改写,实现了DES加解密算法,并添加了文件加解密功能.在此对署名为b ...

  2. JavaScript与C#互通的DES加解密算法

    原文地址:传送门 本文提供了一个能使JavaScript与C#互通的DES加解密算法的实现,在前台页面中用JavaScript版本的DES算法将数据加密之后,传到服务器端,在服务器端可用C#版本的DE ...

  3. AES && DES加解密

    MD5加密一般不可逆,只能暴力突破.所以这边记录一下一些关于字符串的加解密的两种方法,以便自己学习 AES public class AESHelper { public static string ...

  4. java MD5/AES/DES加解密汇总

    package com.test.test1.util; import java.security.MessageDigest; import java.security.SecureRandom; ...

  5. 实验一:C语言实现DES加解密算法

    计算程序执行10万次需要的时间: 总共需要175秒 加解密一次的时间小于:0.00175秒 纯计算加解密的时间会更短 去除IO操作后的时间 也就是说加解密一次的时间为0.07毫秒 /*-------- ...

  6. DES加解密算法(C语言实现)

    DES加密和解密算法的实现(C语言) 主要是做个记录,害怕以后代码丢了,先放到这里了. DES再不进行介绍了,可以看上一篇的 DES 的python实现 转载请注明出处:https://www.cnb ...

  7. 实现与JS相同的Des加解密算法【转】

    Java代码 import java.util.ArrayList; import java.util.List; /** * DES加密/解密 * * @Copyright Copyright (c ...

  8. android平台上AES,DES加解密及问题

    在使用java进行AES加密的时候,会用到如下方法: SecureRandom sr = SecureRandom.getInstance("SHA1PRNG"); 但是在andr ...

  9. Des加解密算法

    class DesHelper    {        /// <summary>        /// DES加密方法        /// </summary>       ...

  10. C#加解密算法

    先附上源码 加密解密算法目前已经应用到我们生活中的各个方面 加密用于达到以下目的: 保密性:帮助保护用户的标识或数据不被读取. 数据完整性:帮助保护数据不被更改. 身份验证:确保数据发自特定的一方. ...

随机推荐

  1. UOJ 575 光伏元件

    #575. [ULR #1]光伏元件 好牛的题 首先行.列拆点,\(i\)表示第\(i\)行,\(i+n\)表示第\(i\)列 先考虑如何表达\(|c_{0,i}-c_{1,i}|\leq k\)这一 ...

  2. WHUWC 2025 游寄

    一沙一世界(NOI2022 in Shanghai 应援) 她是清晨告别洋流启程的沙砾 同忽闪漂流瓶 将白日梦唤醒 好奇目光激发导带微弱的磁极 从此把全世界吸引 她看故事书无聊将那零和一堆砌 牛郎还不 ...

  3. 随机图片获取api

    从多个博客中整合 直接获取图片 http://lorempixel.com/1600/900https://unsplash.it/1600/900?random(国内加载略慢)https://upl ...

  4. 手把手教你在 Sevalla 上部署 Next.js 博客:从搭建到上线全流程

    很多开发者会纠结:"现在博客平台这么多,为啥还要自己搭博客?" 答案很简单:用 Next.js 搭的博客,是真正属于你的 "数字资产". 为什么选 Next.j ...

  5. 前端开发系列134-进阶篇之脚手架Yue-cli的实现03-download功能

    这是系列文章前端脚手架实现的第三篇,本文核心解决当我们通过模板来初始化项目时如何把选定版本的模板文件下载到对应文件夹中的问题. 当我们在拉取模板文件的时候,存在两种情况,一种是直接把初始化项目的模板文 ...

  6. 没有调度器的协程不是好协程——零基础深入浅出 C++20 协程

    前言 上一篇<协程本质是函数加状态机>谈到 C++20 协程的本质,是编译器基于 duff device 的精巧封装,经过一番乾坤大挪移,协程体内容被掉包只保留协程初始化代码,实际运行代码 ...

  7. babylon.js 学习笔记(7)

    前面我们学习了如何画一堆房子(如下图),显然这单调的绿色大地,看上去效果并不好. babylon.js中,可以用图片模拟出地势高低不同的效果,比如下面这张图片: 颜色越深的地方,表示地势越低(即:盆地 ...

  8. Note -「Variational Auto-Encoder」VAE 学习与 MNIST 实战

    目录 \(1\) 数学基础 \(1.1\) KL 散度 \(1.2\) Evidence Lower BOund (ELBO) \(2\) 模型结构 \(2.1\) 基本假设 \(2.2\) Marg ...

  9. 关于VUE中的mapState和mapActions的使用

    最近在开发一套系统,前端使用VUE开发,由于本人是后端开发,前端也会一点,但是VUE接触不多,在VUE项目开发遇到的一些坑记录一下,不是专业前端写好的不好,大家不要唝... 在VUE项目中经常会用到m ...

  10. 递推&递归思想(递归=逆向递推)

    递归 = 逆向递推(本质是一致的) 递推 初始条件 + 递推式 格点法 格点法 对于数的计算:对于合法操作来说,本质上即可看作递推 递归 终止条件 + 递归式 将规模大的问题转化为形式相同但规模更小的 ...