diff --git a/docs/不加密、SM2+AES加密和SSL加密效率测试.MD b/docs/不加密、SM2+AES加密和SSL加密效率测试.MD index e69de29b..7f3dbbb0 100644 --- a/docs/不加密、SM2+AES加密和SSL加密效率测试.MD +++ b/docs/不加密、SM2+AES加密和SSL加密效率测试.MD @@ -0,0 +1,63 @@ +# 客户端与服务器端采用不加密、SM2+AES加密、SSL加密方式进行的性能测试比较 + +* 本测试不作为性能测试参考,仅作为三种数据加密方式的性能比较使用 +* 本测试使用的操作系统为windows10, +* 本测试使用的测试环境配置:内存:16G,CPU:i716核 + +## 1、测试程序准备情况 +* 将程序分别打包为`server`和`client`的`jar`包,在本地运行一个`server`端 +* 拷贝三个客户端配置文件,配置文件名称为`app.yml`、`app-sm2-aes.yml`、`app-ssl.yml`,并修改相应配置,适配不加密、SM2+AES加密和SSL加密 + +## 2、测试思路和实现 +(1)准备1KB、10KB、20KB、50KB、100KB、1MB、2MB、5MB、10MB、20MB、100MB、500MB的文件 + +(2)使用Nodejs实现的anywhere工具,在本地运行简单http服务 + +(3)在server端生成3个licenseKey,分别对应不加密、SM2+AES加密和SSL加密通道,端口分别为9101,9102和9103,并同时映射到anywhere的8000端口 + +(4)使用Hutool里的HttpUtil工具包,对每个文件进行下载,记录下载使用时间,重复执行10次 + +## 测试结果 + +序号| 加密方式 | 文件大小 |响应时间(ms) +---|------|------|--- +1| 不加密 | 1KB |4 +2| SM2+AES | 1KB |21 +3| SSL | 1KB |67 +4| 不加密 | 10KB |3 +5| SM2+AES | 10KB |7 +6| SSL | 10KB |4 +7| 不加密 | 20KB |4 +8| SM2+AES | 20KB |6 +9| SSL | 20KB |5 +10| 不加密 | 50KB |4 +11| SM2+AES | 50KB |7 +12| SSL | 50KB |6 +13| 不加密 | 100KB |6 +14| SM2+AES | 100KB |8 +15| SSL | 100KB |6 +16| 不加密 | 1MB |19 +17| SM2+AES | 1MB |30 +18| SSL | 1MB |19 +19| 不加密 | 2MB |21 +20| SM2+AES | 2MB |40 +21| SSL | 2MB |24 +22| 不加密 | 5MB |31 +23| SM2+AES | 5MB |51 +24| SSL | 5MB |36 +25| 不加密 | 10MB |44 +26| SM2+AES | 10MB |85 +27| SSL | 10MB |47 +28| 不加密 | 20MB |63 +29| SM2+AES | 20MB |139 +30| SSL | 20MB |92 +31| 不加密 | 100MB |323 +32| SM2+AES | 100MB |590 +33| SSL | 100MB |322 +34| 不加密 | 500MB |1414 +35| SM2+AES | 500MB |2797 +36| SSL | 500MB |1561 + +## 测试结论 + +从测试结果可以看出,在请求的文件大小小于50KB时,SM2+AES的方式比SSL的方式效率高,当请求的文件大小大于50KB时,SSL的方式比SM2+AES的方式效率高。 \ No newline at end of file diff --git a/neutrino-proxy-client/src/main/resources/app.yml b/neutrino-proxy-client/src/main/resources/app.yml index 7975bbb9..2b182b5f 100644 --- a/neutrino-proxy-client/src/main/resources/app.yml +++ b/neutrino-proxy-client/src/main/resources/app.yml @@ -34,16 +34,16 @@ neutrino: tunnel: # 线程池相关配置,用于技术调优,可忽略 thread-count: 50 - sm2-encrypt-enable: ${SM2_ENCRYPT_ENABLE:false} + sm2-encrypt-enable: ${SM2_ENCRYPT_ENABLE:true} # 隧道SSL证书配置 key-store-password: ${STORE_PASS:123456} jks-path: ${JKS_PATH:classpath:/test.jks} # 服务端IP server-ip: ${SERVER_IP:localhost} # 服务端端口(对应服务端app.yml中的tunnel.port、tunnel.ssl-port) - server-port: ${SERVER_PORT:9002} + server-port: ${SERVER_PORT:9000} # 是否启用SSL(注意:该配置必须和server-port对应上) - ssl-enable: ${SSL_ENABLE:true} + ssl-enable: ${SSL_ENABLE:false} # 客户端连接唯一凭证 license-key: ${LICENSE_KEY:b0a907332b474b25897c4dcb31fc7eb6} # 客户端唯一身份标识(可忽略,若不设置首次启动会自动生成)