国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
哈希加密為什么是不可逆的
不可逆加密算法的特征是加密過程中不需要使用密鑰,輸入明文后由系統(tǒng)直接經(jīng)過加密算法處理成密文,這種加密后的數(shù)據(jù)是無法被解密的, 只有重新輸入明文,并再次經(jīng)過同樣不可逆的加密算法處理,得到相同的加密密文并被系統(tǒng)重新識別后,才能真正解密。顯然,在這類加密 過程中,加密是自己,解密還得是自己,而所謂解密,實(shí)際上就是重新加一次密,所應(yīng)用的“密碼”也就是輸入的明文。不可逆加密算法不 存在密鑰保管和分發(fā)問題,非常適合在分布式網(wǎng)絡(luò)系統(tǒng)上使用,但因加密計(jì)算復(fù)雜,工作量相當(dāng)繁重,通常只在數(shù)據(jù)量有限的情形下使用, 如廣泛應(yīng)用在計(jì)算機(jī)系統(tǒng)中的口令加密,利用的就是不可逆加密算法。近年來,隨著計(jì)算機(jī)系統(tǒng)性能的不斷提高,不可逆加密的應(yīng)用領(lǐng)域正 在逐漸增大。在計(jì)算機(jī)網(wǎng)絡(luò)中應(yīng)用較多不可逆加密算法的有RSA公司發(fā)明的MD5算法和由美國國家標(biāo)準(zhǔn)局建議的不可逆加密標(biāo)準(zhǔn)SHS(Secure Hash Standard:安全雜亂信息標(biāo)準(zhǔn))等。 不可逆就是假如有兩個(gè)密碼3和4,我的加密算法很簡單就是3+4,結(jié)果是7,但是通過7我不可能確定那兩個(gè)密碼是3和4,有很多種組合, 這就是最簡單的不可逆,所以只能通過暴力破解一個(gè)一個(gè)的試. 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:哈希(不可逆)加密通用類庫函數(shù)
/// </summary>
public class Hasher
{
private byte[] _HashKey; //哈希密鑰存儲變量
private string _HashText; //待加密的字符串
public Hasher()
{
//
// TODO: 在此處添加構(gòu)造函數(shù)邏輯
//
}
/// <summary>
/// 哈希密鑰
/// </summary>
public byte[] HashKey
{
set
{
_HashKey=value;
}
get
{
return _HashKey;
}
}
/// <summary>
/// 需要產(chǎn)生加密哈希的字符串
/// </summary>
public string HashText
{
set
{
_HashText=value;
}
get
{
return _HashText;
}
}
/// <summary>
/// 使用HMACSHA1類產(chǎn)生長度為 20 字節(jié)的哈希序列。需提供相應(yīng)的密鑰,接受任何大小的密鑰。
/// </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字節(jié)字符串
}
/// <summary>
/// 使用MACTripleDES類產(chǎn)生長度為 8 字節(jié)的哈希序列。需提供相應(yīng)的密鑰,密鑰長度可為 8、16 或 24 字節(jié)的密鑰。
/// </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字節(jié)字符串
}
/// <summary>
/// 使用MD5CryptoServiceProvider類產(chǎn)生哈希值。不需要提供密鑰。
/// </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字節(jié)字符串
}
/// <summary>
/// 使用SHA1Managed類產(chǎn)生長度為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字節(jié)的字符串
}
/// <summary>
/// 使用SHA256Managed類產(chǎn)生長度為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字節(jié)的字符串
}
/// <summary>
/// 使用SHA384Managed類產(chǎn)生長度為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字節(jié)的字符串
}
/// <summary>
/// 使用SHA512Managed類產(chǎn)生長度為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字節(jié)的字符串
}
}
}
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報(bào)
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
C#編程總結(jié)(七)數(shù)據(jù)加密——附源碼
C#開發(fā)中常用的加密解密方法匯總
C# RSACryptoServiceProvider加密解密簽名驗(yàn)簽和DESCryptoServic
DES、RSA、MD5、SHA、隨機(jī)生成加密與解密
加密方法
關(guān)于DES 過程密鑰和密鑰分散
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服