string扩展实现强悍的.Net不可逆加密方法 (转载)

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介:
 

最近写加密方法,发现同类的加密方法的基类都是一直的,用泛型整合了一些加密方法,供大家参考

实现方法:

 

复制代码
Code
using System;
using
 System.Text;
using
 System.Security.Cryptography;

namespace
 Zb
{
    
public static class
 StringExtensions
    {
        
/// <summary>

        
/// 不可逆加密
        
/// </summary>

        
/// <typeparam name="Algorithm">加密HASH算法</typeparam>
        
/// <typeparam name="StringEncoding">字符编码</typeparam>
        
/// <param name="str"></param>
        
/// <returns></returns>
        public static string EncryptOneWay<Algorithm, StringEncoding>(this string str)
            
where
 Algorithm : HashAlgorithm
            
where
 StringEncoding : Encoding
        {
            Encoding enco 
= Activator.CreateInstance<StringEncoding>
();
            
byte[] inputBye =
 enco.GetBytes(str);

            
byte[] bytes = Activator.CreateInstance<Algorithm>
().ComputeHash(inputBye);

            
return System.BitConverter.ToString(bytes).Replace("-"""
); ;
        }
        
/// <summary>

        
/// 不可逆加密
        
/// </summary>

        
/// <typeparam name="Algorithm">加密HASH算法</typeparam>
        
/// <param name="str">字符编码</param>
        
/// <returns></returns>
        public static string EncryptOneWay<Algorithm>(this string str)
            
where
 Algorithm : HashAlgorithm
        {
            
return str.EncryptOneWay<Algorithm, System.Text.UTF8Encoding>
();
        }
    }
}
复制代码

使用方法:

 1 MD5 : 

string temp = "123".EncryptOneWay<System.Security.Cryptography.MD5CryptoServiceProvider, System.Text.UTF8Encoding>();
2. sha1:
string temp = "123".EncryptOneWay<System.Security.Cryptography.SHA1CryptoServiceProvider>();
3 SHA256
 string temp = "123".EncryptOneWay<System.Security.Cryptography.SHA256Cng>();
等所有的HASH算法都可以用
版权说明

  如果标题未标有<转载、转>等字则属于作者原创,欢迎转载,其版权归作者和博客园共有。
  作      者:温景良
  文章出处:http://wenjl520.cnblogs.com/  或  http://www.cnblogs.com/

1
0
« 上一篇: PHP写的几个基础算法 (转载)
» 下一篇: SQL*PLUS命令的使用大全
posted @ 2009-04-27 16:05 温景良(Jason) Views( 353) Comments( 2) Edit 收藏

  
#1楼 2009-05-06 17:33 | yangyh  
写了这么多文章...
膜拜

  
#2楼 2010-11-03 09:37 | sunrongshuai  
这个好!

相关文章
|
16天前
|
存储 缓存 Java
java语言后台管理ruoyi后台管理框架-登录提示“无效的会话,或者会话已过期,请重新登录。”-扩展知识数据库中密码加密的方法-问题如何解决-以及如何重置若依后台管理框架admin密码-优雅草卓伊凡
java语言后台管理ruoyi后台管理框架-登录提示“无效的会话,或者会话已过期,请重新登录。”-扩展知识数据库中密码加密的方法-问题如何解决-以及如何重置若依后台管理框架admin密码-优雅草卓伊凡
59 3
java语言后台管理ruoyi后台管理框架-登录提示“无效的会话,或者会话已过期,请重新登录。”-扩展知识数据库中密码加密的方法-问题如何解决-以及如何重置若依后台管理框架admin密码-优雅草卓伊凡
|
6月前
|
存储 数据安全/隐私保护
.NET Core 究竟隐藏着怎样的神秘力量,能实现强身份验证与数据加密?
【8月更文挑战第28天】在数字化时代,数据安全与身份验证至关重要。.NET Core 提供了强大的工具,如 Identity 框架,帮助我们构建高效且可靠的身份验证系统,并支持高度定制化的用户模型和认证逻辑。此外,通过 `System.Security.Cryptography` 命名空间,.NET Core 还提供了丰富的加密算法和工具,确保数据传输和存储过程中的安全性。以下是一个简单的示例,展示如何使用 .NET Core 的 Identity 框架实现用户注册和登录功能。
54 3
|
6月前
for循环和String类下方法的一个练习题
for循环和String类下方法的一个练习题
67 1
|
4月前
|
Java
【编程基础知识】(讲解+示例实战)方法参数的传递机制(值传递及地址传递)以及String类的对象的不可变性
本文深入探讨了Java中方法参数的传递机制,包括值传递和引用传递的区别,以及String类对象的不可变性。通过详细讲解和示例代码,帮助读者理解参数传递的内部原理,并掌握在实际编程中正确处理参数传递的方法。关键词:Java, 方法参数传递, 值传递, 引用传递, String不可变性。
96 1
【编程基础知识】(讲解+示例实战)方法参数的传递机制(值传递及地址传递)以及String类的对象的不可变性
|
4月前
|
存储 安全 Java
|
4月前
|
算法 安全 数据安全/隐私保护
链接加密的方法有哪些?
【10月更文挑战第6天】链接加密的方法有哪些?
507 10
|
3月前
|
JavaScript 前端开发 开发者
|
6月前
|
JavaScript 算法 前端开发
JS算法必备之String常用操作方法
这篇文章详细介绍了JavaScript中字符串的基本操作,包括创建字符串、访问特定字符、字符串的拼接、位置查找、大小写转换、模式匹配、以及字符串的迭代和格式化等方法。
JS算法必备之String常用操作方法
|
5月前
|
JavaScript 前端开发 API
javaScript中常用的String方法以及注意点总结
本文总结了JavaScript中常用的String对象的方法及其注意事项,包括大小写转换、字符获取、子字符串截取、字符串拼接、去除空格、替换、分割以及查找字符串中字符的索引等操作。提供了每种方法的使用示例代码,帮助理解它们的具体用法和差异。
65 2
|
6月前
|
XML Java API
List与String相互转化方法汇总
本文汇总了List与String相互转化的多种方法,包括使用`String.join()`、`StringBuilder`、Java 8的Stream API、Apache Commons Lang3的`StringUtils.join()`以及Guava的`Joiner.on()`方法实现List转String;同时介绍了使用`split()`方法、正则表达式、Apache Commons Lang3的`StringUtils.split()`及Guava的`Splitter.on()`方法实现String转List。
259 1
List与String相互转化方法汇总

热门文章

最新文章