Skip to content

Commit 7caa5e1

Browse files
author
linzhijun
committed
添加 md5 实现代码
1 parent 563bf52 commit 7caa5e1

File tree

10 files changed

+473
-285
lines changed

10 files changed

+473
-285
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ ToolGood.Algorithm
44

55
ToolGood.Algorithm是一个功能强大、轻量级、兼容`Excel公式`的算法类库,旨在提高开发人员在不同业务场景中的生产力。
66

7-
WebAssembly版本,请看csharp文件夹下`ToolGood.Algorithm.WebAssembly`,`ToolGood.Algorithm2.WebTest` 两个项目。注意:不支持Md5、HmacMd5 两个公式
7+
WebAssembly版本,请看csharp文件夹下`ToolGood.Algorithm.WebAssembly`,`ToolGood.Algorithm2.WebTest` 两个项目。注意:不支持HmacMd5
88

99
**适用场景:** 代码与算法分离,避免项目强制升级
1010

csharp/ToolGood.Algorithm.WebAssembly/ToolGood.Algorithm.WebAssembly.csproj

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77

88
<ItemGroup>
99
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly" Version="8.0.4" />
10-
<!--<PackageReference Include="SkiaSharp.Views.Blazor" Version="2.88.8" />-->
1110
</ItemGroup>
1211

1312
<ItemGroup>

csharp/ToolGood.Algorithm2.WebTest/wwwroot/Test/test-csharp.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -92,8 +92,8 @@
9292
await new Promise(resolve => setTimeout(resolve, 300));
9393

9494
var engine = new AlgorithmEngine();
95-
//var dt2 = engine.TryEvaluate("Md5('&=我中国人 >||')", null);
96-
//assert.equal(dt2, "2E1CEFBDFA3677725B7856E02D225819"); //不支持Md5
95+
var dt2 = engine.TryEvaluate("Md5('&=我中国人 >||')", null);
96+
assert.equal(dt2, "2E1CEFBDFA3677725B7856E02D225819"); //不支持Md5
9797

9898

9999
var dt = engine.TryEvaluate("Md5('&=我中国人 >||','GGG')", null);
Binary file not shown.
Binary file not shown.

csharp/ToolGood.Algorithm2.WebTest/wwwroot/_framework/blazor.boot.json

Lines changed: 166 additions & 6 deletions
Large diffs are not rendered by default.

csharp/ToolGood.Algorithm2/Internals/Hash.cs

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -103,31 +103,34 @@ public byte[] Finish()
103103

104104
public static string GetMd5String(byte[] buffer)
105105
{
106+
#if WebAssembly
107+
return MD5.MDString(buffer);
108+
#else
106109
System.Security.Cryptography.MD5 md5 = MD5.Create();
107-
108-
byte[] retVal = md5.ComputeHash(buffer);
110+
byte[] retVal = md5.ComputeHash(buffer);
109111
md5.Dispose();
110112
return BitConverter.ToString(retVal).Replace("-", "");
113+
#endif
111114
}
112115
#endregion
113116

114117
#region SHA1
115118
public static string GetSha1String(byte[] buffer)
116119
{
117120
SHA1 sha512 = SHA1.Create();
118-
byte[] retVal = sha512.ComputeHash(buffer); //计算指定Stream 对象的哈希值
121+
byte[] retVal = sha512.ComputeHash(buffer); //计算指定Stream 对象的哈希值
119122
sha512.Dispose();
120123
return BitConverter.ToString(retVal).Replace("-", "");
121124
}
122125

123126
#endregion
124127

125128
#region SHA256
126-
129+
127130
public static string GetSha256String(byte[] buffer)
128131
{
129132
SHA256 sha512 = SHA256.Create();
130-
byte[] retVal = sha512.ComputeHash(buffer); //计算指定Stream 对象的哈希值
133+
byte[] retVal = sha512.ComputeHash(buffer); //计算指定Stream 对象的哈希值
131134
sha512.Dispose();
132135
return BitConverter.ToString(retVal).Replace("-", "");
133136
}
@@ -138,7 +141,7 @@ public static string GetSha256String(byte[] buffer)
138141
public static string GetSha512String(byte[] buffer)
139142
{
140143
SHA512 sha512 = SHA512.Create();
141-
byte[] retVal = sha512.ComputeHash(buffer); //计算指定Stream 对象的哈希值
144+
byte[] retVal = sha512.ComputeHash(buffer); //计算指定Stream 对象的哈希值
142145
sha512.Dispose();
143146
return BitConverter.ToString(retVal).Replace("-", "");
144147
}

0 commit comments

Comments
 (0)