Skip to content

Commit bc27c01

Browse files
committed
[修改]1. README 的日志描述
1 parent 60dccf8 commit bc27c01

File tree

1 file changed

+196
-178
lines changed

1 file changed

+196
-178
lines changed

README.md

Lines changed: 196 additions & 178 deletions
Original file line numberDiff line numberDiff line change
@@ -1,178 +1,196 @@
1-
# GameFrameX.Foundation
2-
3-
GameFrameX 的基建库, 提供了一些基础的扩展方法和工具类.
4-
5-
## HTTP 消息结构标准化组件 (GameFrameX.Foundation.Http.Normalization)
6-
7-
该组件提供了 HTTP 消息结构标准化的功能, 让消息的格式更加统一.
8-
9-
服务器返回的消息包含 `code``message``data`, 但是客户端需要统一的返回格式, 需要进行格式化.所以这个组件提供了格式化的功能. 适用于GameFrameX 的整个生态标准
10-
11-
## 加密工具库 (GameFrameX.Foundation.Encryption)
12-
13-
该库提供了多种加密算法的实现,包括:
14-
15-
### AES 加密 (AesHelper)
16-
17-
提供 AES 对称加密算法的实现:
18-
19-
- 支持字符串和字节数组的加密/解密
20-
- 使用 Rijndael 算法作为 AES 标准的实现
21-
- 提供高安全级别的加密方案
22-
23-
### RSA 加密 (RsaHelper)
24-
25-
提供 RSA 非对称加密算法的实现:
26-
27-
- 支持密钥对生成
28-
- 支持公钥加密/私钥解密
29-
- 支持数字签名和验证
30-
- 支持字符串和字节数组操作
31-
32-
### DSA 签名 (DsaHelper)
33-
34-
提供 DSA 数字签名算法的实现:
35-
36-
- 支持密钥对生成
37-
- 支持数字签名和验证
38-
- 支持字符串和字节数组操作
39-
40-
### SM2/SM4 加密 (Sm2Helper/Sm4Helper)
41-
42-
提供国密 SM2/SM4 算法的实现:
43-
44-
- SM2: 非对称加密算法
45-
- 支持密钥对生成
46-
- 支持加密/解密操作
47-
- SM4: 对称加密算法
48-
- 支持 ECB/CBC 加密模式
49-
- 支持 JavaScript 兼容模式
50-
- 支持十六进制密钥
51-
52-
### XOR 加密 (XorHelper)
53-
54-
提供异或加密算法的实现:
55-
56-
- 支持快速加密模式(仅加密前220字节)
57-
- 支持完整加密模式
58-
- 支持指定范围加密
59-
- 内存优化设计,支持原地加密
60-
61-
### 使用示例
62-
63-
```csharp
64-
// AES 加密示例
65-
string encrypted = AesHelper.Encrypt("Hello World", "your-key");
66-
string decrypted = AesHelper.Decrypt(encrypted, "your-key");
67-
// RSA 加密示例
68-
var keys = RsaHelper.Make();
69-
string encrypted = RsaHelper.Encrypt(keys["publicKey"], "Hello World");
70-
string decrypted = RsaHelper.Decrypt(keys["privateKey"], encrypted);
71-
// SM4 加密示例
72-
string encrypted = Sm4Helper.EncryptCbc("your-key", "Hello World");
73-
string decrypted = Sm4Helper.DecryptCbc("your-key", encrypted);
74-
```
75-
76-
## 哈希工具库 (GameFrameX.Foundation.Hash)
77-
78-
该库提供了多种哈希算法的实现,包括:
79-
80-
### MD5 哈希 (Md5Helper)
81-
82-
- 提供字符串、流、文件和字节数组的MD5哈希计算
83-
- 支持加盐哈希
84-
- 支持哈希值验证
85-
- 注:MD5已不再被认为是加密安全的,建议在安全要求较高的场景使用SHA-256或更高强度的算法
86-
87-
### SHA 系列哈希
88-
89-
- SHA-1 (Sha1Helper): 生成160位(20字节)哈希值
90-
- SHA-256 (Sha256Helper): 生成256位(32字节)哈希值
91-
- SHA-512 (Sha512Helper): 生成512位(64字节)哈希值
92-
- 支持字符串、字节数组和文件的哈希计算与验证
93-
- 支持自定义编码
94-
95-
### HMAC-SHA256 (HmacSha256Helper)
96-
97-
- 基于密钥的哈希消息认证码
98-
- 结合SHA-256哈希函数和密钥
99-
- 返回Base64编码的哈希值
100-
101-
### CRC 校验 (CrcHelper)
102-
103-
- CRC32: 32位循环冗余校验
104-
- CRC64: 64位循环冗余校验,基于ECMA-182标准
105-
- 支持流式处理
106-
- 支持字节数组和文件处理
107-
108-
### MurmurHash3 (MurmurHash3Helper)
109-
110-
- 非加密型高性能哈希算法
111-
- 32位版本实现
112-
- 支持自定义种子值
113-
- 适用于哈希表等场景
114-
115-
### xxHash (XxHashHelper)
116-
117-
- 提供32位、64位和128位哈希值计算
118-
- 高性能非加密型哈希算法
119-
- 支持字符串、字节数组和类型哈希
120-
- 适用于需要快速哈希计算的场景
121-
122-
### 使用示例
123-
124-
```csharp
125-
// MD5哈希示例
126-
string md5Hash = Md5Helper.Hash("Hello World");
127-
string saltedHash = Md5Helper.HashWithSalt("Hello World", "salt");
128-
// SHA-256哈希示例
129-
string sha256Hash = Sha256Helper.ComputeHash("Hello World");
130-
// HMAC-SHA256示例
131-
string hmacHash = HmacSha256Helper.Hash("message", "key");
132-
// CRC32校验示例
133-
int crc32 = CrcHelper.GetCrc32("Hello World"u8.ToArray());
134-
// MurmurHash3示例
135-
uint murmurHash = MurmurHash3Helper.Hash("Hello World");
136-
// xxHash示例
137-
ulong xxHash = XxHashHelper.Hash64("Hello World");
138-
```
139-
140-
## JSON 序列化/反序列化 (GameFrameX.Foundation.Json)
141-
142-
- 基于 System.Text.Json 的高性能序列化工具
143-
- 提供默认和格式化两种序列化配置:
144-
- DefaultOptions: 紧凑输出,适合传输
145-
- FormatOptions: 格式化输出,适合调试
146-
- 特性支持:
147-
- 枚举序列化为字符串
148-
- 忽略 null 值属性
149-
- 忽略循环引用
150-
- 属性名称大小写不敏感
151-
- 丰富的序列化/反序列化方法:
152-
- 字符串序列化/反序列化
153-
- UTF8字节数组序列化/反序列化
154-
- 安全的Try方法
155-
- 支持泛型和非泛型API
156-
157-
### 使用示例
158-
159-
```csharp
160-
// 序列化示例
161-
string json = JsonHelper.Serialize(myObject);
162-
// 反序列化示例
163-
MyClass deserializedObject = JsonHelper.Deserialize<MyClass>(json);
164-
```
165-
166-
## HttpClient 扩展 (GameFrameX.Foundation.Http.Extension)
167-
168-
- 提供 HttpClient 的扩展方法,用于发送JSON请求和处理JSON响应
169-
- 支持POST请求,将JSON数据序列化后发送,并将响应内容读取为字符串
170-
- 支持自定义请求头和超时时间
171-
- 支持泛型和非泛型API
172-
173-
### 使用示例
174-
175-
```csharp
176-
// POST请求示例
177-
string response = await httpClient.PostJsonToStringAsync<MyClass>(url, myObject);
178-
```
1+
# GameFrameX.Foundation
2+
3+
GameFrameX 的基建库, 提供了一些基础的扩展方法和工具类.
4+
5+
## HTTP 消息结构标准化组件 (GameFrameX.Foundation.Http.Normalization)
6+
7+
该组件提供了 HTTP 消息结构标准化的功能, 让消息的格式更加统一.
8+
9+
服务器返回的消息包含 `code``message``data`, 但是客户端需要统一的返回格式, 需要进行格式化.所以这个组件提供了格式化的功能. 适用于GameFrameX 的整个生态标准
10+
11+
## 加密工具库 (GameFrameX.Foundation.Encryption)
12+
13+
该库提供了多种加密算法的实现,包括:
14+
15+
### AES 加密 (AesHelper)
16+
17+
提供 AES 对称加密算法的实现:
18+
19+
- 支持字符串和字节数组的加密/解密
20+
- 使用 Rijndael 算法作为 AES 标准的实现
21+
- 提供高安全级别的加密方案
22+
23+
### RSA 加密 (RsaHelper)
24+
25+
提供 RSA 非对称加密算法的实现:
26+
27+
- 支持密钥对生成
28+
- 支持公钥加密/私钥解密
29+
- 支持数字签名和验证
30+
- 支持字符串和字节数组操作
31+
32+
### DSA 签名 (DsaHelper)
33+
34+
提供 DSA 数字签名算法的实现:
35+
36+
- 支持密钥对生成
37+
- 支持数字签名和验证
38+
- 支持字符串和字节数组操作
39+
40+
### SM2/SM4 加密 (Sm2Helper/Sm4Helper)
41+
42+
提供国密 SM2/SM4 算法的实现:
43+
44+
- SM2: 非对称加密算法
45+
- 支持密钥对生成
46+
- 支持加密/解密操作
47+
- SM4: 对称加密算法
48+
- 支持 ECB/CBC 加密模式
49+
- 支持 JavaScript 兼容模式
50+
- 支持十六进制密钥
51+
52+
### XOR 加密 (XorHelper)
53+
54+
提供异或加密算法的实现:
55+
56+
- 支持快速加密模式(仅加密前220字节)
57+
- 支持完整加密模式
58+
- 支持指定范围加密
59+
- 内存优化设计,支持原地加密
60+
61+
### 使用示例
62+
63+
```csharp
64+
// AES 加密示例
65+
string encrypted = AesHelper.Encrypt("Hello World", "your-key");
66+
string decrypted = AesHelper.Decrypt(encrypted, "your-key");
67+
// RSA 加密示例
68+
var keys = RsaHelper.Make();
69+
string encrypted = RsaHelper.Encrypt(keys["publicKey"], "Hello World");
70+
string decrypted = RsaHelper.Decrypt(keys["privateKey"], encrypted);
71+
// SM4 加密示例
72+
string encrypted = Sm4Helper.EncryptCbc("your-key", "Hello World");
73+
string decrypted = Sm4Helper.DecryptCbc("your-key", encrypted);
74+
```
75+
76+
## 哈希工具库 (GameFrameX.Foundation.Hash)
77+
78+
该库提供了多种哈希算法的实现,包括:
79+
80+
### MD5 哈希 (Md5Helper)
81+
82+
- 提供字符串、流、文件和字节数组的MD5哈希计算
83+
- 支持加盐哈希
84+
- 支持哈希值验证
85+
- 注:MD5已不再被认为是加密安全的,建议在安全要求较高的场景使用SHA-256或更高强度的算法
86+
87+
### SHA 系列哈希
88+
89+
- SHA-1 (Sha1Helper): 生成160位(20字节)哈希值
90+
- SHA-256 (Sha256Helper): 生成256位(32字节)哈希值
91+
- SHA-512 (Sha512Helper): 生成512位(64字节)哈希值
92+
- 支持字符串、字节数组和文件的哈希计算与验证
93+
- 支持自定义编码
94+
95+
### HMAC-SHA256 (HmacSha256Helper)
96+
97+
- 基于密钥的哈希消息认证码
98+
- 结合SHA-256哈希函数和密钥
99+
- 返回Base64编码的哈希值
100+
101+
### CRC 校验 (CrcHelper)
102+
103+
- CRC32: 32位循环冗余校验
104+
- CRC64: 64位循环冗余校验,基于ECMA-182标准
105+
- 支持流式处理
106+
- 支持字节数组和文件处理
107+
108+
### MurmurHash3 (MurmurHash3Helper)
109+
110+
- 非加密型高性能哈希算法
111+
- 32位版本实现
112+
- 支持自定义种子值
113+
- 适用于哈希表等场景
114+
115+
### xxHash (XxHashHelper)
116+
117+
- 提供32位、64位和128位哈希值计算
118+
- 高性能非加密型哈希算法
119+
- 支持字符串、字节数组和类型哈希
120+
- 适用于需要快速哈希计算的场景
121+
122+
### 使用示例
123+
124+
```csharp
125+
// MD5哈希示例
126+
string md5Hash = Md5Helper.Hash("Hello World");
127+
string saltedHash = Md5Helper.HashWithSalt("Hello World", "salt");
128+
// SHA-256哈希示例
129+
string sha256Hash = Sha256Helper.ComputeHash("Hello World");
130+
// HMAC-SHA256示例
131+
string hmacHash = HmacSha256Helper.Hash("message", "key");
132+
// CRC32校验示例
133+
int crc32 = CrcHelper.GetCrc32("Hello World"u8.ToArray());
134+
// MurmurHash3示例
135+
uint murmurHash = MurmurHash3Helper.Hash("Hello World");
136+
// xxHash示例
137+
ulong xxHash = XxHashHelper.Hash64("Hello World");
138+
```
139+
140+
## JSON 序列化/反序列化 (GameFrameX.Foundation.Json)
141+
142+
- 基于 System.Text.Json 的高性能序列化工具
143+
- 提供默认和格式化两种序列化配置:
144+
- DefaultOptions: 紧凑输出,适合传输
145+
- FormatOptions: 格式化输出,适合调试
146+
- 特性支持:
147+
- 枚举序列化为字符串
148+
- 忽略 null 值属性
149+
- 忽略循环引用
150+
- 属性名称大小写不敏感
151+
- 丰富的序列化/反序列化方法:
152+
- 字符串序列化/反序列化
153+
- UTF8字节数组序列化/反序列化
154+
- 安全的Try方法
155+
- 支持泛型和非泛型API
156+
157+
### 使用示例
158+
159+
```csharp
160+
// 序列化示例
161+
string json = JsonHelper.Serialize(myObject);
162+
// 反序列化示例
163+
MyClass deserializedObject = JsonHelper.Deserialize<MyClass>(json);
164+
```
165+
166+
## HttpClient 扩展 (GameFrameX.Foundation.Http.Extension)
167+
168+
- 提供 HttpClient 的扩展方法,用于发送JSON请求和处理JSON响应
169+
- 支持POST请求,将JSON数据序列化后发送,并将响应内容读取为字符串
170+
- 支持自定义请求头和超时时间
171+
- 支持泛型和非泛型API
172+
173+
### 使用示例
174+
175+
```csharp
176+
// POST请求示例
177+
string response = await httpClient.PostJsonToStringAsync<MyClass>(url, myObject);
178+
```
179+
180+
## Serilog 日志配置 (GameFrameX.Foundation.Logger)
181+
182+
- 提供 Serilog 的扩展方法,用于配置日志输出
183+
- 支持常用参数配置,如日志级别、输出路径、序列化格式等
184+
- 支持自定义外部日志提供程序
185+
- 提供常用的日志记录函数,如 Debug、Information、Warning、Error
186+
- 提供日志的自我诊断输出
187+
188+
### 使用示例
189+
190+
```csharp
191+
// 默认配置
192+
LogHandler.Create(LogOptions.Default);
193+
// 日志打印
194+
LogHelper.Info("Hello World");
195+
```
196+

0 commit comments

Comments
 (0)