首页 > 编程语言 >SM4、AES、DES加解密算法性能比较

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

时间:2023-06-26 12:13:15浏览次数:45  
标签:1024 AES SM4 decryContent DES System encryContent println out

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

标签:1024,AES,SM4,decryContent,DES,System,encryContent,println,out
From: https://www.cnblogs.com/chinasoft/p/17505299.html

相关文章

  • Ant.Design Pro的删除国际化
    错误messageTemplate:'extend-config-missing',messageData:{configName:'prettier',importerName:''}}描述今天在使Ant.designPro的框架的时候,执行proi18n-remove--locale=zh-CN--write删除国际化的时候报的错误,解决方法执行npmieslintprettier-eslinte......
  • SpringBoot + Ant Design Vue实现数据导出功能
    (SpringBoot+AntDesignVue实现数据导出功能)一、需求以xlsx格式导出所选表格中的内容要求进行分级设置表头颜色。二、前端代码实现2.1显示实现首先我们需要添加一个用于到导出的按钮上去,像这样的:<a-button@click="exportBatchlistVerify">批量导出</a-button>至......
  • 远程桌面客户端(Remote Desktop Client)是一种用于远程连接到另一台计算机的应用程序。
    远程桌面客户端(RemoteDesktopClient)是一种用于远程连接到另一台计算机的应用程序。它允许用户通过网络连接到远程计算机,并在本地计算机上使用远程计算机的桌面环境和应用程序。以下是关于远程桌面客户端的一些重要信息:功能:远程桌面客户端提供了许多功能,包括:连接到远程计算机:通......
  • 11.2.0.1 Grid Infrastructure Installation Failed at Second Nodes While Running r
     11.2.0.1GridInfrastructureInstallationFailedatSecondNodesWhileRunningroot.shDueToASMCrashCausedbylmonTimeout[ID1239123.1]--------------------------------------------------------------------------------  修改时间06-JAN-2011    ......
  • "Failed to destroy network for sandbox" 错误处理分享
    问题说明:calicopod突然报错,如下截图最后排查到containerd的cni插件有问题,官方文档说的是:如果你使用containerdv1.6.0-v1.6.3并遇到"IncompatibleCNIversions"或者"Failedtodestroynetworkforsandbox"错误,考虑更新你的CNI插件并编辑CNI配置文件(如果版本......
  • 小试Blazor——实现Ant Design Blazor动态表单
    前言最近想了解下Blazor,于是尝试使用Blazor写一个简单的低代码框架,于是就采用了AntDesignBlazor作为组件库低代码框架在表现层的第一步则是动态表单,需要将设计时的结构渲染成运行时的表单,本次主要实现动态表单,相关数据接口都以返回固定数据的形式实现实现1.项目准备先通过......
  • HLS AES加密
    HLSAES加密HLSAES加密介绍HLSAES加密是一种用于保护HLS流内容安全的加密技术。它通过将HLS媒体文件进行分段,并使用AES加密算法对每个片段进行加密,从而防止未经授权的访问和内容盗取。HLSAES加密的功能主要包括以下方面:内容保护:使用AES加密算法对HLS媒体片段进行加密,确保......
  • PANDACU: second hand luxury bag and wallet bags designer used leather branded ba
    PANDACUisareputablewholesalesupplierspecializinginsecond-handluxurybagsandwallets.Theyofferawideselectionofdesignerusedleatherbags,includingbrandedoptions.Withafocusonprovidinghigh-qualityproducts,PANDACUcaterstoretaile......
  • VSCode 配置 PyQt5 Designer
    安装扩展VSCode安装PYQTIntegration扩展。在线地址:VisualStudioMarketplace-PYQTIntegration。安装之后,点击扩展进行设置。设置扩展Pyuic找到pyuic路径,我的路径是:E:\DevTools\anaconda3\envs\pyqt5\Scripts\pyuic5。Qtdesigner找到Qtdesigner路径,我的路径......
  • 什么是 SAP Business ByDesign 里的 TREX
    TREX(TextRetrievalandInformationExtraction)在SAPBusinessByDesign中是一个强大的搜索和分析引擎,专门用于处理大量的结构化和非结构化数据。它是SAP的全文搜索引擎,提供高效的文本搜索、信息提取和分析功能。TREX的应用范围广泛,下面将详细说明其在SAPBusinessByD......