发一个加密的方法

王朝asp·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

//声明加密字符生成的随机数的位数

public const int LENGTH = 32;

//声明加密字符前后的分隔长度

public const int LEN = 4;

///方法作用:根据参数对其加密

///参数:

/// string strEncrypt;欲加密的字符

///返回结果:加密后的字符

public static byte[] SourceEncrypt(string strEncrypt)

{

string source = Encrypt(strEncrypt);

//first

string first = Encrypt(source.Substring(0,LEN));

//second

string second = Encrypt(source.Substring(LEN-1,source.Length-LEN));

//third

string third = Encrypt(source.Substring(source.Length-LEN,LEN));

//four

byte[] Random = new byte[LENGTH];

RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider();

rng.GetNonZeroBytes(Random);

string four = Encrypt(System.Text.Encoding.ASCII.GetString(Random));

string all = first+second+third+four;

return System.Text.Encoding.ASCII.GetBytes(all);

} // end SourceEncrypt

///方法作用:对参数进行加密

///参数:

/// string strEncrypt:欲加密的字符

/// 返回结果:加密后的字符

public static string Encrypt(string strEncrypt)

{

SHA256Managed sha = new SHA256Managed();

byte[] VALUE = sha.ComputeHash(System.Text.Encoding.ASCII.GetBytes(strEncrypt));

return System.Text.Encoding.ASCII.GetString(VALUE);

} // end Encrypt

///方法作用:对参数进行比较

///参数:

/// string strSource:原字符

/// string strObject:目标字符

/// 返回结果:bool是否相等

public static bool CompareEncrypt(byte[] strSource,string strobject)

{

bool result = true;

byte[] strObject = SourceEncrypt(strobject);

//strObject = SourceEncrypt(strObject);

if((strSource==null) || (strObject==null) || (strSource.Length != strObject.Length))

result = false;

else

{

//strSource = strSource.Substring(0,strSource.Length-LENGTH);

//strObject = strObject.Substring(0,strObject.Length-LENGTH);

//byte[] Source = System.Text.Encoding.ASCII.GetBytes(strSource);

//byte[] Obj = System.Text.Encoding.ASCII.GetBytes(strObject);

byte[] Source = strSource;

byte[] Obj = strObject;

if(Source.Length != Obj.Length)

result = false;

else

{

for(int i = 0; i < Source.Length-LENGTH; i++)

{

if(Source[i] != Obj[i])

{

result = false;

break;

}

}

}

}

return result;

} //end CompareyEncrypt

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航