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

简介:
 

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

实现方法:

 

复制代码
ContractedBlock.gif ExpandedBlockStart.gif 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/

posted @ 2009-04-27 16:05 温景良(Jason) Views( 353) Comments( 2) Edit 收藏

  
#1楼 2009-05-06 17:33 | yangyh  
写了这么多文章...
膜拜
http://pic.cnblogs.com/face/u54057.jpg
  
#2楼 1950111 2010/11/3 9:37:21 2010-11-03 09:37 | sunrongshuai  
这个好!

公告

 
本文转自 我的程序人生博客园博客,原文链接: http://www.cnblogs.com/wenjl520/archive/2009/04/27/1444678.html,如需转载请自行联系原作者
 
 
相关文章
|
1月前
|
安全 API 开发工具
oss加密的配置方法
阿里云OSS提供多种加密选项:SSE-OSS(默认或对象级AES-256加密)、SSE-KMS(使用KMS托管CMK)、临时密钥加密和客户端加密(CSE)。可通过控制台或API设置Bucket策略,使用HTTP头部指定加密方式。KMS和临时密钥可能涉及更复杂的密钥管理和权限配置。
133 5
|
1月前
|
Java
Java String split()方法详细教程
Java String split()方法详细教程
22 0
|
4月前
|
Go
Go string bytes、strings、strconv和unicode包相关方法
Go string bytes、strings、strconv和unicode包相关方法
26 0
|
3月前
|
Java
String类中的一些常用方法(JAVA)
字符串比较方法: boolean equals(Object anObject):  int compareTo(String s): int compareToIgnoreCase(String str) 字符串查找方法: char charAt(int index): int indexOf(int ch):  int indexOf(int ch, int fromIndex): int indexOf(String str): int indexOf(String str, int fromIndex): int lastIndexOf(int ch): int
59 0
|
4月前
|
存储 算法 Java
11.Java方法的综合练习题大全-双色球彩票系统,数字的加密和解密等试题(下)
11.Java方法的综合练习题大全-双色球彩票系统,数字的加密和解密等试题(上)
80 1
|
1月前
|
Java 索引
Java中String方法学习总结_kaic
Java中String方法学习总结_kaic
|
1月前
|
机器学习/深度学习 Java 索引
39、一篇文章弄懂 Java 正则表达式中的量词、贪婪、勉强、独占和 String 的 matches 方法的底层【个人感觉非常值得学习】
39、一篇文章弄懂 Java 正则表达式中的量词、贪婪、勉强、独占和 String 的 matches 方法的底层【个人感觉非常值得学习】
30 0
|
1月前
|
存储 安全 Java
36、Java 中的 String、StringBuilder、StringBuffer、字符串常量池和 intern 方法
36、Java 中的 String、StringBuilder、StringBuffer、字符串常量池和 intern 方法
31 0
|
3月前
|
PHP Windows
php扩展com_dndnet(PHP与.NET框架进行交互)
php扩展com_dndnet(PHP与.NET框架进行交互)
php扩展com_dndnet(PHP与.NET框架进行交互)
|
3月前
|
前端开发 JavaScript 算法
深入探究 JavaScript 中的 String:常用方法和属性全解析(下)
深入探究 JavaScript 中的 String:常用方法和属性全解析(下)