diff --git a/framework/Furion/DataEncryption/Encryptions/SHA1Encryption.cs b/framework/Furion/DataEncryption/Encryptions/SHA1Encryption.cs new file mode 100644 index 0000000000000000000000000000000000000000..a0af3f8cb8ae4aa2c49db15d7b28f6d3717ad5be --- /dev/null +++ b/framework/Furion/DataEncryption/Encryptions/SHA1Encryption.cs @@ -0,0 +1,67 @@ +// ------------------------------------------------------------------------ +// 版权信息 +// 版权归百小僧及百签科技(广东)有限公司所有。 +// 所有权利保留。 +// 官方网站:https://baiqian.com +// +// 许可证信息 +// Furion 项目主要遵循 MIT 许可证和 Apache 许可证(版本 2.0)进行分发和使用。 +// 许可证的完整文本可以在源代码树根目录中的 LICENSE-APACHE 和 LICENSE-MIT 文件中找到。 +// 官方网站:https://furion.net +// +// 使用条款 +// 使用本代码应遵守相关法律法规和许可证的要求。 +// +// 免责声明 +// 对于因使用本代码而产生的任何直接、间接、偶然、特殊或后果性损害,我们不承担任何责任。 +// +// 其他重要信息 +// Furion 项目的版权、商标、专利和其他相关权利均受相应法律法规的保护。 +// 有关 Furion 项目的其他详细信息,请参阅位于源代码树根目录中的 COPYRIGHT 和 DISCLAIMER 文件。 +// +// 更多信息 +// 请访问 https://gitee.com/dotnetchina/Furion 获取更多关于 Furion 项目的许可证和版权信息。 +// ------------------------------------------------------------------------ + +using System.Security.Cryptography; +using System.Text; + +namespace Furion.DataEncryption; + +/// +/// SHA1 加密 +/// +[SuppressSniffer] +public class SHA1Encryption +{ + /// + /// SHA1 加密 + /// + /// 加密文本 + /// 是否输出大写加密,默认 false + /// + public static string Encrypt(string text, bool uppercase = false) + { + return Encrypt(Encoding.UTF8.GetBytes(text), uppercase); + } + + /// + /// SHA1 加密 + /// + /// 字节数组 + /// 是否输出大写加密,默认 false + /// + public static string Encrypt(byte[] bytes, bool uppercase = false) + { + var data = SHA1.HashData(bytes); + + var stringBuilder = new StringBuilder(); + for (int i = 0; i < data.Length; i++) + { + stringBuilder.Append(data[i].ToString("x2")); + } + + var sha1String = stringBuilder.ToString(); + return !uppercase ? sha1String : sha1String.ToUpper(); + } +} \ No newline at end of file diff --git a/framework/Furion/DataEncryption/Extensions/StringEncryptionExtensions.cs b/framework/Furion/DataEncryption/Extensions/StringEncryptionExtensions.cs index e4b7fc78877a8fbc3cd7d05e30ebf533158a484e..4c05696f2fecc521b696afb161f7612a6b5b10b8 100644 --- a/framework/Furion/DataEncryption/Extensions/StringEncryptionExtensions.cs +++ b/framework/Furion/DataEncryption/Extensions/StringEncryptionExtensions.cs @@ -184,4 +184,15 @@ public static class StringEncryptionExtensions { return RSAEncryption.Decrypt(text, privateKey); } + + /// + /// 字符串 SHA1 加密 + /// + /// 需要加密的文本 + /// 是否输出大写加密,默认 false + /// + public static string ToSHA1Encrypt(this string text, bool uppercase = false) + { + return SHA1Encryption.Encrypt(text, uppercase); + } } \ No newline at end of file