Просмотр исходного кода

!1045 修复SM4的ECB模式下算法使用错误的问题
Merge pull request !1045 from Leckun/next

zuohuaijun 2 лет назад
Родитель
Сommit
58e4d8e4ab

+ 1 - 0
Admin.NET/Admin.NET.Core/Util/GM/GM.cs

@@ -407,6 +407,7 @@ public class GM
 
     public const string SM4_ECB_NOPADDING = "SM4/ECB/NoPadding";
     public const string SM4_CBC_NOPADDING = "SM4/CBC/NoPadding";
+    public const string SM4_ECB_PKCS7PADDING = "SM4/ECB/PKCS7Padding";
     public const string SM4_CBC_PKCS7PADDING = "SM4/CBC/PKCS7Padding";
 
     /**

+ 2 - 2
Admin.NET/Admin.NET.Core/Util/GM/GMUtil.cs

@@ -70,7 +70,7 @@ public class GMUtil
     public static string SM4EncryptECB(string key_string, string plainText)
     {
         byte[] key = Hex.Decode(key_string);
-        byte[] bs = GM.Sm4EncryptECB(key, Encoding.UTF8.GetBytes(plainText), GM.SM4_CBC_PKCS7PADDING);//NoPadding 的情况下需要校验数据长度是16的倍数. 使用 HandleSm4Padding 处理
+        byte[] bs = GM.Sm4EncryptECB(key, Encoding.UTF8.GetBytes(plainText), GM.SM4_ECB_PKCS7PADDING);//NoPadding 的情况下需要校验数据长度是16的倍数. 使用 HandleSm4Padding 处理
         return Hex.ToHexString(bs);
     }
 
@@ -83,7 +83,7 @@ public class GMUtil
     public static string SM4DecryptECB(string key_string, string cipherText)
     {
         byte[] key = Hex.Decode(key_string);
-        byte[] bs = GM.Sm4DecryptECB(key, Hex.Decode(cipherText), GM.SM4_CBC_PKCS7PADDING);
+        byte[] bs = GM.Sm4DecryptECB(key, Hex.Decode(cipherText), GM.SM4_ECB_PKCS7PADDING);
         return Encoding.UTF8.GetString(bs);
     }