diff --git a/src/backend/NSExt/Extensions/LongExtensions.cs b/src/backend/NSExt/Extensions/LongExtensions.cs
index 6ea66b9..5792e5f 100644
--- a/src/backend/NSExt/Extensions/LongExtensions.cs
+++ b/src/backend/NSExt/Extensions/LongExtensions.cs
@@ -5,6 +5,8 @@ namespace NSExt.Extensions;
///
public static class LongExtensions
{
+ private const string _CHARS_36 = "0123456789abcdefghijklmnopqrstuvwxyz";
+
///
/// 判断枚举是否包含某个位
///
@@ -24,6 +26,22 @@ public static class LongExtensions
return new Random(Guid.NewGuid().GetHashCode()).NextInt64(me[0], me[1]);
}
+ ///
+ /// 转36进制
+ ///
+ public static string Sys36(this long me)
+ {
+ var ret = new StringBuilder();
+ while (me > 35)
+ {
+ _ = ret.Insert(0, _CHARS_36[(int)(me % 36)]);
+ me /= 36;
+ }
+
+ _ = ret.Insert(0, _CHARS_36[(int)me]);
+ return ret.ToString();
+ }
+
///
/// 1970毫秒数转换成日期对象
///
diff --git a/src/backend/NSExt/Extensions/StringExtensions.cs b/src/backend/NSExt/Extensions/StringExtensions.cs
index c99a60b..1720eb6 100644
--- a/src/backend/NSExt/Extensions/StringExtensions.cs
+++ b/src/backend/NSExt/Extensions/StringExtensions.cs
@@ -14,7 +14,7 @@ namespace NSExt.Extensions;
///
public static partial class StringExtensions
{
- private const string _CHARACTERS = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
+ private const string _CHARS_62 = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
private static readonly Regex _regexIpV4 = RegexIpV4();
///
@@ -51,15 +51,43 @@ public static partial class StringExtensions
return decrypted.HexDe();
}
+ ///
+ /// 将指定的输入字符串进行Base62编码
+ ///
+ public static string Base62(this string me)
+ {
+ // Convert string to byte array
+ var bytes = Encoding.UTF8.GetBytes(me);
+
+ // Convert byte array to BigInteger for easier processing
+ var bigInteger = new BigInteger(bytes);
+
+ if (bigInteger == 0)
+ {
+ return _CHARS_62[0].ToString();
+ }
+
+ var result = new StringBuilder();
+
+ while (bigInteger > 0)
+ {
+ var remainder = (int)(bigInteger % 62);
+ bigInteger /= 62;
+ _ = result.Insert(0, _CHARS_62[remainder]);
+ }
+
+ return result.ToString();
+ }
+
///
/// 将指定的输入字符串进行Base62解码
///
/// ArgumentException
- public static string Base62Decode(this string me)
+ public static string Base62De(this string me)
{
BigInteger result = 0;
- foreach (var index in me.Select(c => _CHARACTERS.IndexOf(c)))
+ foreach (var index in me.Select(c => _CHARS_62.IndexOf(c)))
{
if (index < 0)
{
@@ -81,34 +109,6 @@ public static partial class StringExtensions
return Encoding.UTF8.GetString(bytes);
}
- ///
- /// 将指定的输入字符串进行Base62编码
- ///
- public static string Base62Encode(this string me)
- {
- // Convert string to byte array
- var bytes = Encoding.UTF8.GetBytes(me);
-
- // Convert byte array to BigInteger for easier processing
- var bigInteger = new BigInteger(bytes);
-
- if (bigInteger == 0)
- {
- return _CHARACTERS[0].ToString();
- }
-
- var result = new StringBuilder();
-
- while (bigInteger > 0)
- {
- var remainder = (int)(bigInteger % 62);
- bigInteger /= 62;
- _ = result.Insert(0, _CHARACTERS[remainder]);
- }
-
- return result.ToString();
- }
-
///
/// base64编码
///