public void encryDecry() throws Exception{
SM4StringEncryptor sm4 = new SM4StringEncryptor()
String path = "D:\\Users\\xuelongjiang109\\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("xuelongjiang12442")
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 |