欢迎光临
我们一直在努力

哈希(不可逆)加密通用类库函数-.NET教程,评论及其它

建站超值云服务器,限时71元/月

using system;

using system.io;

using system.security.cryptography;

namespace common

{

/// <summary>

///copyright (c), 2004, kwklover(邝伟科)

///file name:hasher.cs

///author:邝伟科 version:1.0 date:2004年4月22日

///description:哈希(不可逆)加密通用类库函数

/// </summary>

public class hasher

{

private byte[] _hashkey; //哈希密钥存储变量

private string _hashtext; //待加密的字符串

public hasher()

{

//

// todo: 在此处添加构造函数逻辑

//

}

/// <summary>

/// 哈希密钥

/// </summary>

public byte[] hashkey

{

set

{

_hashkey=value;

}

get

{

return _hashkey;

}

}

/// <summary>

/// 需要产生加密哈希的字符串

/// </summary>

public string hashtext

{

set

{

_hashtext=value;

}

get

{

return _hashtext;

}

}

/// <summary>

/// 使用hmacsha1类产生长度为 20 字节的哈希序列。需提供相应的密钥,接受任何大小的密钥。

/// </summary>

/// <returns></returns>

public string hmacsha1hasher()

{

byte[] hmackey=hashkey;

byte[] hmacdata=system.text.encoding.utf8.getbytes(hashtext);

hmacsha1 hmac = new hmacsha1(hmackey);

cryptostream cs = new cryptostream(stream.null, hmac, cryptostreammode.write);

cs.write(hmacdata, 0, hmacdata.length);

cs.close();

byte[] result=hmac.hash;

return convert.tobase64string(result); //返回长度为28字节字符串

}

/// <summary>

/// 使用mactripledes类产生长度为 8 字节的哈希序列。需提供相应的密钥,密钥长度可为 8、16 或 24 字节的密钥。

/// </summary>

/// <returns></returns>

public string mactripledeshasher()

{

byte[] mackey=hashkey;

byte[] macdata=system.text.encoding.utf8.getbytes(hashtext);

mactripledes mac=new mactripledes(mackey);

byte[] result=mac.computehash(macdata);

return convert.tobase64string(result); //返回长度为12字节字符串

}

/// <summary>

/// 使用md5cryptoserviceprovider类产生哈希值。不需要提供密钥。

/// </summary>

/// <returns></returns>

public string md5hasher()

{

byte[] md5data=system.text.encoding.utf8.getbytes(hashtext);

md5 md5=new md5cryptoserviceprovider();

byte[] result=md5.computehash(md5data);

return convert.tobase64string(result); //返回长度为25字节字符串

}

/// <summary>

/// 使用sha1managed类产生长度为160位哈希值。不需要提供密钥。

/// </summary>

/// <returns></returns>

public string sha1managedhasher()

{

byte[] sha1data=system.text.encoding.utf8.getbytes(hashtext);

sha1managed sha1=new sha1managed();

byte[] result=sha1.computehash(sha1data);

return convert.tobase64string(result); //返回长度为28字节的字符串

}

/// <summary>

/// 使用sha256managed类产生长度为256位哈希值。不需要提供密钥。

/// </summary>

/// <returns></returns>

public string sha256managedhasher()

{

byte[] sha256data=system.text.encoding.utf8.getbytes(hashtext);

sha256managed sha256=new sha256managed();

byte[] result=sha256.computehash(sha256data);

return convert.tobase64string(result); //返回长度为44字节的字符串

}

/// <summary>

/// 使用sha384managed类产生长度为384位哈希值。不需要提供密钥。

/// </summary>

/// <returns></returns>

public string sha384managedhasher()

{

byte[] sha384data=system.text.encoding.utf8.getbytes(hashtext);

sha384managed sha384=new sha384managed();

byte[] result=sha384.computehash(sha384data);

return convert.tobase64string(result); //返回长度为64字节的字符串

}

/// <summary>

/// 使用sha512managed类产生长度为512位哈希值。不需要提供密钥。

/// </summary>

/// <returns></returns>

public string sha512managedhasher()

{

byte[] sha512data=system.text.encoding.utf8.getbytes(hashtext);

sha512managed sha512=new sha512managed();

byte[] result=sha512.computehash(sha512data);

return convert.tobase64string(result); //返回长度为88字节的字符串

}

}

}

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » 哈希(不可逆)加密通用类库函数-.NET教程,评论及其它
分享到: 更多 (0)

相关推荐

  • 暂无文章