MD5
public static string Md5Encrypt(string sourceString,Encoding enc = null)
{
if(enc==null) enc=Encoding.UTF8;
var buffer = MD5.Create().ComputeHash(enc.GetBytes(sourceString));
var builder = new StringBuilder();
foreach(var t in buffer)
{
builder.Append(t.ToString("x").PadLeft(2,'0'));
}
return builder.ToString();
}
MD5加密后Bsae64加密
public static string Md5ByteEncrypt(string sourceString, Encoding enc = null)
{
if (enc == null) enc = Encoding.UTF8;
var buffer = MD5.Create().ComputeHash(enc.GetBytes(sourceString));
var SignBytesStr = Convert.ToBase64String(buffer);
var builder = new StringBuilder();
//foreach(var t in buffer)
//{
// builder.Append(t.ToString("x").PadLeft(2,'0'));
//}
//return builder.ToString();
return SignBytesStr;
}
SHA1
public static string SHA256Encrypt(string str) {
byte[] StrRes = Encoding.Default.GetBytes(str);
HashAlgorithm iSHA = new SHA1CryptoServiceProvider();
StrRes = iSHA.ComputeHash(StrRes);
StringBuilder EnText = new StringBuilder();
foreach (byte iByte in StrRes)
{
EnText.AppendFormat("{0:x2}", iByte);
}
return EnText.ToString();
}
SHA256
public static string SHA256Encrypt(string str) {
byte[] StrRes = Encoding.Default.GetBytes(str);
HashAlgorithm iSHA = new SHA256CryptoServiceProvider();
StrRes = iSHA.ComputeHash(StrRes);
StringBuilder EnText = new StringBuilder();
foreach (byte iByte in StrRes)
{
EnText.AppendFormat("{0:x2}", iByte);
}
return EnText.ToString();
}
RSA加密
public static string RSAEncrypt(string publickey, string content)
{
using (RSACryptoServiceProvider RSACryptography = new RSACryptoServiceProvider())
{
try {
Byte[] PlaintextData = Encoding.UTF8.GetBytes(content);
RSACryptography.FromXmlString(publickey);
int MaxBlockSize = RSACryptography.KeySize / 8 - 11; //加密块最大长度限制
if (PlaintextData.Length <= MaxBlockSize)
return Convert.ToBase64String(RSACryptography.Encrypt(PlaintextData, false));
using (MemoryStream PlaiStream = new MemoryStream(PlaintextData))
using (MemoryStream CrypStream = new MemoryStream())
{
Byte[] Buffer = new Byte[MaxBlockSize];
int BlockSize = PlaiStream.Read(Buffer, 0, MaxBlockSize);
while (BlockSize > 0)
{
Byte[] ToEncrypt = new Byte[BlockSize];
Array.Copy(Buffer, 0, ToEncrypt, 0, BlockSize);
Byte[] Cryptograph = RSACryptography.Encrypt(ToEncrypt, false);
CrypStream.Write(Cryptograph, 0, Cryptograph.Length);
BlockSize = PlaiStream.Read(Buffer, 0, MaxBlockSize);
}
return Convert.ToBase64String(CrypStream.ToArray(), Base64FormattingOptions.None);
}
}
catch (Exception e) {
return "";
}
}
}
//C#的RSA私钥签名代码如:
public static string RSASignData(string privatekey, string content)
{
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
byte[] cipherbytes;
rsa.FromXmlString(privatekey);
cipherbytes = rsa.SignData(Encoding.UTF8.GetBytes(content), "SHA1");
return Convert.ToBase64String(cipherbytes);
}
//C#的RSA公钥验证代码如:
public static bool RSAVerifyData(string publickey, string content, string sign)
{
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
rsa.FromXmlString(publickey);
return rsa.VerifyData(Encoding.UTF8.GetBytes(content), "SHA1", Convert.FromBase64String(sign));
}
public static string Md5Encrypt(string sourceString,Encoding enc = null)
{
if(enc==null) enc=Encoding.UTF8;
var buffer = MD5.Create().ComputeHash(enc.GetBytes(sourceString));
var builder = new StringBuilder();
foreach(var t in buffer)
{
builder.Append(t.ToString("x").PadLeft(2,'0'));
}
return builder.ToString();
}
MD5加密后Bsae64加密
public static string Md5ByteEncrypt(string sourceString, Encoding enc = null)
{
if (enc == null) enc = Encoding.UTF8;
var buffer = MD5.Create().ComputeHash(enc.GetBytes(sourceString));
var SignBytesStr = Convert.ToBase64String(buffer);
var builder = new StringBuilder();
//foreach(var t in buffer)
//{
// builder.Append(t.ToString("x").PadLeft(2,'0'));
//}
//return builder.ToString();
return SignBytesStr;
}
SHA1
public static string SHA256Encrypt(string str) {
byte[] StrRes = Encoding.Default.GetBytes(str);
HashAlgorithm iSHA = new SHA1CryptoServiceProvider();
StrRes = iSHA.ComputeHash(StrRes);
StringBuilder EnText = new StringBuilder();
foreach (byte iByte in StrRes)
{
EnText.AppendFormat("{0:x2}", iByte);
}
return EnText.ToString();
}
SHA256
public static string SHA256Encrypt(string str) {
byte[] StrRes = Encoding.Default.GetBytes(str);
HashAlgorithm iSHA = new SHA256CryptoServiceProvider();
StrRes = iSHA.ComputeHash(StrRes);
StringBuilder EnText = new StringBuilder();
foreach (byte iByte in StrRes)
{
EnText.AppendFormat("{0:x2}", iByte);
}
return EnText.ToString();
}
RSA加密
public static string RSAEncrypt(string publickey, string content)
{
using (RSACryptoServiceProvider RSACryptography = new RSACryptoServiceProvider())
{
try {
Byte[] PlaintextData = Encoding.UTF8.GetBytes(content);
RSACryptography.FromXmlString(publickey);
int MaxBlockSize = RSACryptography.KeySize / 8 - 11; //加密块最大长度限制
if (PlaintextData.Length <= MaxBlockSize)
return Convert.ToBase64String(RSACryptography.Encrypt(PlaintextData, false));
using (MemoryStream PlaiStream = new MemoryStream(PlaintextData))
using (MemoryStream CrypStream = new MemoryStream())
{
Byte[] Buffer = new Byte[MaxBlockSize];
int BlockSize = PlaiStream.Read(Buffer, 0, MaxBlockSize);
while (BlockSize > 0)
{
Byte[] ToEncrypt = new Byte[BlockSize];
Array.Copy(Buffer, 0, ToEncrypt, 0, BlockSize);
Byte[] Cryptograph = RSACryptography.Encrypt(ToEncrypt, false);
CrypStream.Write(Cryptograph, 0, Cryptograph.Length);
BlockSize = PlaiStream.Read(Buffer, 0, MaxBlockSize);
}
return Convert.ToBase64String(CrypStream.ToArray(), Base64FormattingOptions.None);
}
}
catch (Exception e) {
return "";
}
}
}
//C#的RSA私钥签名代码如:
public static string RSASignData(string privatekey, string content)
{
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
byte[] cipherbytes;
rsa.FromXmlString(privatekey);
cipherbytes = rsa.SignData(Encoding.UTF8.GetBytes(content), "SHA1");
return Convert.ToBase64String(cipherbytes);
}
//C#的RSA公钥验证代码如:
public static bool RSAVerifyData(string publickey, string content, string sign)
{
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
rsa.FromXmlString(publickey);
return rsa.VerifyData(Encoding.UTF8.GetBytes(content), "SHA1", Convert.FromBase64String(sign));
}