Skip to content

Commit 1492cfa

Browse files
committed
引用 HashLib4CSharp 库
1 parent f69641c commit 1492cfa

File tree

6 files changed

+54
-266
lines changed

6 files changed

+54
-266
lines changed

DotVast.HashTool.WinUI/DotVast.HashTool.WinUI.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333

3434
<ItemGroup>
3535
<PackageReference Include="CommunityToolkit.Mvvm" Version="8.0.0" />
36+
<PackageReference Include="HashLib4CSharp" Version="1.5.0" />
3637
<PackageReference Include="Microsoft.Extensions.Hosting" Version="6.0.1" />
3738
<PackageReference Include="Microsoft.WindowsAppSDK" Version="1.1.5" />
3839
<PackageReference Include="Microsoft.Xaml.Behaviors.WinUI.Managed" Version="2.0.8" />

DotVast.HashTool.WinUI/Services/Hash/CRC.cs

Lines changed: 0 additions & 6 deletions
This file was deleted.

DotVast.HashTool.WinUI/Services/Hash/CRCAlgorithm.cs

Lines changed: 0 additions & 219 deletions
This file was deleted.

DotVast.HashTool.WinUI/Services/Hash/Hash.cs

Lines changed: 25 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
using DotVast.HashTool.WinUI.Helpers;
22

3+
using HashLib4CSharp.Checksum;
4+
5+
using static HashLib4CSharp.Base.HashFactory.Checksum.CRC;
6+
using static HashLib4CSharp.Base.HashFactory.Crypto;
7+
38
using Crypto = System.Security.Cryptography;
49

510
namespace DotVast.HashTool.WinUI.Services.Hash;
@@ -14,45 +19,45 @@ public Crypto.HashAlgorithm Algorithm
1419
}
1520

1621
// CRC
17-
public static readonly Hash CRC32 = new("CRC32", CRC.CreateCRC32());
22+
public static readonly Hash CRC32 = new("CRC32", CreateCRC(CRCModel.CRC32).ToHashAlgorithm());
1823

1924
// MD
20-
//public static readonly Hash MD4 = "MD4";
25+
public static readonly Hash MD4 = new("MD4", CreateMD4().ToHashAlgorithm());
2126
public static readonly Hash MD5 = new("MD5", Crypto.MD5.Create());
2227

2328
// SHA1
2429
public static readonly Hash SHA1 = new("SHA1", Crypto.SHA1.Create());
2530

2631
// SHA2
27-
//public static readonly Hash SHA224 = "SHA224";
32+
public static readonly Hash SHA224 = new("SHA224", CreateSHA2_224().ToHashAlgorithm());
2833
public static readonly Hash SHA256 = new("SHA256", Crypto.SHA256.Create());
2934
public static readonly Hash SHA384 = new("SHA384", Crypto.SHA384.Create());
3035
public static readonly Hash SHA512 = new("SHA512", Crypto.SHA512.Create());
3136

3237
// SHA3
33-
//public static readonly Hash SHA3_224 = "SHA3-224";
34-
//public static readonly Hash SHA3_256 = "SHA3-256";
35-
//public static readonly Hash SHA3_384 = "SHA3-384";
36-
//public static readonly Hash SHA3_512 = "SHA3-512";
38+
public static readonly Hash SHA3_224 = new("SHA3-224", CreateSHA3_224().ToHashAlgorithm());
39+
public static readonly Hash SHA3_256 = new("SHA3-256", CreateSHA3_256().ToHashAlgorithm());
40+
public static readonly Hash SHA3_384 = new("SHA3-384", CreateSHA3_384().ToHashAlgorithm());
41+
public static readonly Hash SHA3_512 = new("SHA3-512", CreateSHA3_512().ToHashAlgorithm());
3742

3843
// Blake2B
39-
//public static readonly Hash Blake2B_160 = "Blake2B-160";
40-
//public static readonly Hash Blake2B_256 = "Blake2B-256";
41-
//public static readonly Hash Blake2B_384 = "Blake2B-384";
42-
//public static readonly Hash Blake2B_512 = "Blake2B-512";
44+
public static readonly Hash Blake2B_160 = new("Blake2B-160", CreateBlake2B_160().ToHashAlgorithm());
45+
public static readonly Hash Blake2B_256 = new("Blake2B-256", CreateBlake2B_256().ToHashAlgorithm());
46+
public static readonly Hash Blake2B_384 = new("Blake2B-384", CreateBlake2B_384().ToHashAlgorithm());
47+
public static readonly Hash Blake2B_512 = new("Blake2B-512", CreateBlake2B_512().ToHashAlgorithm());
4348

4449
// Blake2S
45-
//public static readonly Hash Blake2S_128 = "Blake2S-128";
46-
//public static readonly Hash Blake2S_160 = "Blake2S-160";
47-
//public static readonly Hash Blake2S_224 = "Blake2S-224";
48-
//public static readonly Hash Blake2S_256 = "Blake2S-256";
50+
public static readonly Hash Blake2S_128 = new("Blake2S-128", CreateBlake2S_128().ToHashAlgorithm());
51+
public static readonly Hash Blake2S_160 = new("Blake2S-160", CreateBlake2S_160().ToHashAlgorithm());
52+
public static readonly Hash Blake2S_224 = new("Blake2S-224", CreateBlake2S_224().ToHashAlgorithm());
53+
public static readonly Hash Blake2S_256 = new("Blake2S-256", CreateBlake2S_256().ToHashAlgorithm());
4954

5055
// Keccak
51-
//public static readonly Hash Keccak_224 = "Keccak-224";
52-
//public static readonly Hash Keccak_256 = "Keccak-256";
53-
//public static readonly Hash Keccak_288 = "Keccak-288";
54-
//public static readonly Hash Keccak_384 = "Keccak-384";
55-
//public static readonly Hash Keccak_512 = "Keccak-512";
56+
public static readonly Hash Keccak_224 = new("Keccak-224", CreateKeccak_224().ToHashAlgorithm());
57+
public static readonly Hash Keccak_256 = new("Keccak-256", CreateKeccak_256().ToHashAlgorithm());
58+
public static readonly Hash Keccak_288 = new("Keccak-288", CreateKeccak_288().ToHashAlgorithm());
59+
public static readonly Hash Keccak_384 = new("Keccak-384", CreateKeccak_384().ToHashAlgorithm());
60+
public static readonly Hash Keccak_512 = new("Keccak-512", CreateKeccak_512().ToHashAlgorithm());
5661

5762
// QuickXor
5863
public static readonly Hash QuickXor = new("QuickXor", new QuickXorHash());
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
using System.Security.Cryptography;
2+
3+
namespace DotVast.HashTool.WinUI.Services.Hash;
4+
5+
internal static class HashLib4CSharpAdapterExtensions
6+
{
7+
public static HashAlgorithm ToHashAlgorithm(this HashLib4CSharp.Interfaces.IHash hash) =>
8+
HashLib4CSharp.Base.HashFactory.Adapter.CreateHashAlgorithmFromHash(hash);
9+
}

DotVast.HashTool.WinUI/ViewModels/HomeViewModel.cs

Lines changed: 19 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,6 @@
1111

1212
namespace DotVast.HashTool.WinUI.ViewModels;
1313

14-
// TODO: 文本模式下,应选择编码,否则无法正确计算哈希值.
15-
// TODO: CRC32 计算结果位数错误.
1614
public sealed partial class HomeViewModel : ObservableRecipient
1715
{
1816
private readonly ILogger<HomeViewModel> _logger;
@@ -131,36 +129,36 @@ private void InitHashNames()
131129
new(false, Hash.CRC32),
132130

133131
// MD
134-
//new(false,Hash.MD4),
132+
new(false,Hash.MD4),
135133
new(true, Hash.MD5),
136134

137135
// SHA
138136
new(false, Hash.SHA1),
139-
//new(false,Hash.SHA224),
137+
new(false,Hash.SHA224),
140138
new(true, Hash.SHA256),
141139
new(false, Hash.SHA384),
142140
new(false, Hash.SHA512),
143-
//new(false,Hash.SHA3_224),
144-
//new(false,Hash.SHA3_256),
145-
//new(false,Hash.SHA3_384),
146-
//new(false,Hash.SHA3_512),
141+
new(false,Hash.SHA3_224),
142+
new(false,Hash.SHA3_256),
143+
new(false,Hash.SHA3_384),
144+
new(false,Hash.SHA3_512),
147145

148146
// Blake2
149-
//new(false,Hash.Blake2B_160),
150-
//new(false,Hash.Blake2B_256),
151-
//new(false,Hash.Blake2B_384),
152-
//new(false,Hash.Blake2B_512),
153-
//new(false,Hash.Blake2S_128),
154-
//new(false,Hash.Blake2S_160),
155-
//new(false,Hash.Blake2S_224),
156-
//new(false,Hash.Blake2S_256),
147+
new(false,Hash.Blake2B_160),
148+
new(false,Hash.Blake2B_256),
149+
new(false,Hash.Blake2B_384),
150+
new(false,Hash.Blake2B_512),
151+
new(false,Hash.Blake2S_128),
152+
new(false,Hash.Blake2S_160),
153+
new(false,Hash.Blake2S_224),
154+
new(false,Hash.Blake2S_256),
157155

158156
// Keccak
159-
//new(false,Hash.Keccak_224),
160-
//new(false,Hash.Keccak_256),
161-
//new(false,Hash.Keccak_288),
162-
//new(false,Hash.Keccak_384),
163-
//new(false,Hash.Keccak_512),
157+
new(false,Hash.Keccak_224),
158+
new(false,Hash.Keccak_256),
159+
new(false,Hash.Keccak_288),
160+
new(false,Hash.Keccak_384),
161+
new(false,Hash.Keccak_512),
164162

165163
// QuickXor
166164
new(false, Hash.QuickXor),

0 commit comments

Comments
 (0)