SM4、AES、DES加解密算法性能比較
測(cè)試代碼
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加密耗時(shí):" + (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解密耗時(shí):" + (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加密耗時(shí):" + (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解密耗時(shí):" + (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加密耗時(shí):" + (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解密耗時(shí):" + (desEncryEndTime - desEncryStartTime) + "ms");*/
}
性能比較結(jié)果
加密算法 | 文件大小 | 加密耗時(shí)(ms) | 解密耗時(shí)(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 |
文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-539601.html
文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-539601.html
到了這里,關(guān)于SM4、AES、DES加解密算法性能比較的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!