C# 常用的加密代码参考
1、MD5加密
public static string EncryptString(string source)
{
string result;
if (source == string.Empty || source == null)
{
result = string.Empty;
}
else
{
Encoding utf = new UTF8Encoding();
byte[] bytes = utf.GetBytes(source);
MD5 md5 = new MD5CryptoServiceProvider();
result = Convert.ToBase64String(md5.ComputeHash(bytes));
}
return result;
}
2、 SHA_1加密
public static string EncryptString(string source)
{
string result;
if (source == "" || source == string.Empty || source == null)
{
result = source;
}
else
{
Encoding utf = new UTF8Encoding();
byte[] bytes = utf.GetBytes(source);
SHA1 sha = new SHA1CryptoServiceProvider();
result = Convert.ToBase64String(sha.ComputeHash(bytes));
}
return result;
}
3、对称加密示例
private static readonly string key = "sajdkfj";
private static readonly byte[] iv = new byte[]
{
,
,
,
,
,
,
,
};
public static string EncryptString(string source)
{
string result;
if (source == string.Empty || source == null)
{
result = source;
}
else
{
Encoding utf = new UTF8Encoding();
DESCryptoServiceProvider des = new DESCryptoServiceProvider();
ICryptoTransform encrpt = des.CreateEncryptor(utf.GetBytes(SymmetricEncryption.key), SymmetricEncryption.iv);
byte[] byteMessage = utf.GetBytes(source);
byte[] byteEncrpt = encrpt.TransformFinalBlock(byteMessage, , byteMessage.Length);
result = Convert.ToBase64String(byteEncrpt);
}
return result;
}
public static string DecryptString(string source)
{
Encoding utf = new UTF8Encoding();
DESCryptoServiceProvider des = new DESCryptoServiceProvider();
ICryptoTransform decrpt = des.CreateDecryptor(utf.GetBytes(SymmetricEncryption.key), SymmetricEncryption.iv);
byte[] byteEncrypt = Convert.FromBase64String(source);
byte[] byteDecrypt = decrpt.TransformFinalBlock(byteEncrypt, , byteEncrypt.Length);
return utf.GetString(byteDecrypt);
}
4、非对称加密
public const string PUBLIC_KEY = "sdfasdfjsldkjfljLKjlkjaslkdj";
public void RSAKey(out string privateKeys, out string publicKey)
{
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
privateKeys = rsa.ToXmlString(true);
publicKey = rsa.ToXmlString(false);
}
public string RSAEncrypt(string publicKey, string strEncryptString)
{
byte[] plainTextBArray = new UnicodeEncoding().GetBytes(strEncryptString);
return this.RSAEncrypt(publicKey, plainTextBArray);
}
public string RSAEncrypt(string publicKey, byte[] encryptString)
{
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
rsa.FromXmlString(publicKey);
int keySize = rsa.KeySize / ;
int bufferSize = keySize - ;
byte[] buffer = new byte[bufferSize];
MemoryStream msInput = new MemoryStream(encryptString);
MemoryStream msOutput = new MemoryStream();
for (int readLen = msInput.Read(buffer, , bufferSize); readLen > ; readLen = msInput.Read(buffer, , bufferSize))
{
byte[] dataToEnc = new byte[readLen];
Array.Copy(buffer, , dataToEnc, , readLen);
byte[] encData = rsa.Encrypt(dataToEnc, false);
msOutput.Write(encData, , encData.Length);
}
msInput.Close();
byte[] cypherTextBArray = msOutput.ToArray();
msOutput.Close();
rsa.Clear();
return Convert.ToBase64String(cypherTextBArray);
}
public string RSADecrypt(string privateKey, string strDecryptString)
{
byte[] plainTextBArray = Convert.FromBase64String(strDecryptString);
return this.RSADecrypt(privateKey, plainTextBArray);
}
public string RSADecrypt(string privateKey, byte[] decryptString)
{
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
rsa.FromXmlString(privateKey);
int keySize = rsa.KeySize / ;
byte[] buffer = new byte[keySize];
MemoryStream msInput = new MemoryStream(decryptString);
MemoryStream msOutput = new MemoryStream();
for (int readLen = msInput.Read(buffer, , keySize); readLen > ; readLen = msInput.Read(buffer, , keySize))
{
byte[] dataToDec = new byte[readLen];
Array.Copy(buffer, , dataToDec, , readLen);
byte[] decData = rsa.Decrypt(dataToDec, false);
msOutput.Write(decData, , decData.Length);
}
msInput.Close();
byte[] dypherTextBArray = msOutput.ToArray();
msOutput.Close();
rsa.Clear();
return new UnicodeEncoding().GetString(dypherTextBArray);
}
public bool GetHash(string strSource, ref byte[] HashData)
{
HashAlgorithm MD5 = HashAlgorithm.Create("MD5");
byte[] Buffer = Encoding.GetEncoding("GB2312").GetBytes(strSource);
HashData = MD5.ComputeHash(Buffer);
return true;
}
public string GetHash(string strSource)
{
HashAlgorithm MD5 = HashAlgorithm.Create("MD5");
byte[] Buffer = Encoding.GetEncoding("GB2312").GetBytes(strSource);
byte[] HashData = MD5.ComputeHash(Buffer);
return Convert.ToBase64String(HashData);
}
public void SignatureFormatter(string p_strKeyPrivate, byte[] HashbyteSignature, out byte[] EncryptedSignatureData)
{
RSACryptoServiceProvider RSA = new RSACryptoServiceProvider();
RSA.FromXmlString(p_strKeyPrivate);
RSAPKCS1SignatureFormatter RSAFormatter = new RSAPKCS1SignatureFormatter(RSA);
RSAFormatter.SetHashAlgorithm("MD5");
EncryptedSignatureData = RSAFormatter.CreateSignature(HashbyteSignature);
}
public void SignatureFormatter(string p_strKeyPrivate, byte[] HashbyteSignature, out string m_strEncryptedSignatureData)
{
RSACryptoServiceProvider RSA = new RSACryptoServiceProvider();
RSA.FromXmlString(p_strKeyPrivate);
RSAPKCS1SignatureFormatter RSAFormatter = new RSAPKCS1SignatureFormatter(RSA);
RSAFormatter.SetHashAlgorithm("MD5");
byte[] EncryptedSignatureData = RSAFormatter.CreateSignature(HashbyteSignature);
m_strEncryptedSignatureData = Convert.ToBase64String(EncryptedSignatureData);
}
public void SignatureFormatter(string p_strKeyPrivate, string m_strHashbyteSignature, out byte[] EncryptedSignatureData)
{
byte[] HashbyteSignature = Convert.FromBase64String(this.GetHash(m_strHashbyteSignature));
RSACryptoServiceProvider RSA = new RSACryptoServiceProvider();
RSA.FromXmlString(p_strKeyPrivate);
RSAPKCS1SignatureFormatter RSAFormatter = new RSAPKCS1SignatureFormatter(RSA);
RSAFormatter.SetHashAlgorithm("MD5");
EncryptedSignatureData = RSAFormatter.CreateSignature(HashbyteSignature);
}
public void SignatureFormatter(string p_strKeyPrivate, string m_strHashbyteSignature, out string m_strEncryptedSignatureData)
{
byte[] HashbyteSignature = Convert.FromBase64String(this.GetHash(m_strHashbyteSignature));
RSACryptoServiceProvider RSA = new RSACryptoServiceProvider();
RSA.FromXmlString(p_strKeyPrivate);
RSAPKCS1SignatureFormatter RSAFormatter = new RSAPKCS1SignatureFormatter(RSA);
RSAFormatter.SetHashAlgorithm("MD5");
byte[] EncryptedSignatureData = RSAFormatter.CreateSignature(HashbyteSignature);
m_strEncryptedSignatureData = Convert.ToBase64String(EncryptedSignatureData);
}
public bool SignatureDeformatter(string p_strKeyPublic, byte[] HashbyteDeformatter, byte[] DeformatterData)
{
RSACryptoServiceProvider RSA = new RSACryptoServiceProvider();
RSA.FromXmlString(p_strKeyPublic);
RSAPKCS1SignatureDeformatter RSADeformatter = new RSAPKCS1SignatureDeformatter(RSA);
RSADeformatter.SetHashAlgorithm("MD5");
return RSADeformatter.VerifySignature(HashbyteDeformatter, DeformatterData);
}
public bool SignatureDeformatter(string p_strKeyPublic, string p_strHashbyteDeformatter, byte[] DeformatterData)
{
byte[] HashbyteDeformatter = Convert.FromBase64String(this.GetHash(p_strHashbyteDeformatter));
RSACryptoServiceProvider RSA = new RSACryptoServiceProvider();
RSA.FromXmlString(p_strKeyPublic);
RSAPKCS1SignatureDeformatter RSADeformatter = new RSAPKCS1SignatureDeformatter(RSA);
RSADeformatter.SetHashAlgorithm("MD5");
return RSADeformatter.VerifySignature(HashbyteDeformatter, DeformatterData);
}
public bool SignatureDeformatter(string p_strKeyPublic, byte[] HashbyteDeformatter, string p_strDeformatterData)
{
RSACryptoServiceProvider RSA = new RSACryptoServiceProvider();
RSA.FromXmlString(p_strKeyPublic);
RSAPKCS1SignatureDeformatter RSADeformatter = new RSAPKCS1SignatureDeformatter(RSA);
RSADeformatter.SetHashAlgorithm("MD5");
byte[] DeformatterData = Convert.FromBase64String(p_strDeformatterData);
return RSADeformatter.VerifySignature(HashbyteDeformatter, DeformatterData);
}
public bool SignatureDeformatter(string p_strKeyPublic, string p_strHashbyteDeformatter, string p_strDeformatterData)
{
byte[] HashbyteDeformatter = Convert.FromBase64String(this.GetHash(p_strHashbyteDeformatter));
RSACryptoServiceProvider RSA = new RSACryptoServiceProvider();
RSA.FromXmlString(p_strKeyPublic);
RSAPKCS1SignatureDeformatter RSADeformatter = new RSAPKCS1SignatureDeformatter(RSA);
RSADeformatter.SetHashAlgorithm("MD5");
byte[] DeformatterData = Convert.FromBase64String(p_strDeformatterData);
return RSADeformatter.VerifySignature(HashbyteDeformatter, DeformatterData);
}
C# 常用的加密代码参考的更多相关文章
- Java常用的加密解密类(对称加密类)
Java常用的加密解密类 原文转载至:http://blog.csdn.net/wyc_cs/article/details/8793198 原创 2013年04月12日 14:33:35 1704 ...
- 常用 Java 静态代码分析工具的分析与比较
常用 Java 静态代码分析工具的分析与比较 简介: 本文首先介绍了静态代码分析的基 本概念及主要技术,随后分别介绍了现有 4 种主流 Java 静态代码分析工具 (Checkstyle,FindBu ...
- 【转载】常用 Java 静态代码分析工具的分析与比较
摘自:http://www.oschina.net/question/129540_23043常用 Java 静态代码分析工具的分析与比较 简介: 本文首先介绍了静态代码分析的基本概念及主要技术,随后 ...
- Proguard语法及常用proguard.cfg代码段
本文主要ProGuard常用语法.标准proguard.cfg文件内容.常用proguard.cfg代码段及proguard与log level结合解决debug模式日志问题. 1.ProGuard的 ...
- C#开发中常用的加密解密方法
转载自:https://www.cnblogs.com/bj981/p/11203711.html C#开发中常用的加密解密方法 相信很多人在开发过程中经常会遇到需要对一些重要的信息进行加密处理,今天 ...
- Jquery 代码参考
jquery 代码参考 jQuery(document).ready(function($){}); jQuery(window).on('load', function(){}); $('.vide ...
- 十五个常用的jquery代码段【转】
好的文章顶一个 回到顶部按钮 通过使用 jQuery 中的 animate 和 scrollTop 方法,你无需插件便可创建一个简单地回到顶部动画: 1 // Back to top 2 $('a.t ...
- 十五个常用的jquery代码段
十五个常用的jquery代码段 回到顶部按钮 通过使用 jQuery 中的 animate 和 scrollTop 方法,你无需插件便可创建一个简单地回到顶部动画: 1 // Back to top ...
- 关于win2008r2上配置iis,出现加密代码与联邦基础加密冲突的问题的解决
在win2008r2上配置asp.net网站时,出现这个问题: This implementation is not part of the Windows Platform FIPS validat ...
随机推荐
- 容器启动脚本报错:exec user process caused "no such file or directory"
1.现象 standard_init_linux.go:: exec user process caused "no such file or directory" 2.原因 原因 ...
- Windows系统编程之异步I/O和完成端口
Windows系统编程之异步I/O和完成端口[作者]北极星2003[来源]看雪技术论坛(bbs.pediy.com) [时间]2006年7月1日 一. 同步I/O和异步I/O 在介绍这部分内容之前先 ...
- Docker环境安装与配置
Docker 简介 Docker使用Go语言编写的 安装Docker推荐LInux内核在3.10上 在2.6内核下运行较卡(CentOS 7.X以上内核是3.10) Docker 安装 安装yum-u ...
- RxSwift学习笔记9:amb/tabkeWhile/tabkeUntil/skipWhile/skipUntil
//amb基本介绍 //当传入多个 Observables 到 amb 操作符时,它将取第一个发出元素或产生事件的 Observable,然后只发出它的元素. //并忽略掉其他的 Observable ...
- Apollo配置管理系统使用
- git 命令(补充篇)的本质理解
1 标签, git tag tag_name SHA 本质: 在某次commit 上打上标签tag_name ,标签在代码库中起着"锚点"的作用. 注意: commit 由 SHA ...
- VS从数据库表生成Model代码
1.工具——扩展和更新——安装下列插件 2.如图所示,在项目或者MODEL文件夹下添加 3.如图所示,生成了一个datanase.11 4.打开该文件后,将数据库连接字符串改为你自己项目中WebCof ...
- Java正则表达式API详解
1. Pattern类 public class PatternExample { /** * public static String quote(String s) * 返回指定字符串的字面值模式 ...
- Swift5 语言指南(二) 版本兼容性
本书描述了Swift 5,它是Xcode 10.2中包含的Swift的默认版本.您可以使用Xcode 10.2构建以Swift 5,Swift 4.2或Swift 4编写的目标. 当您使用Xcode ...
- Angular使用总结 --- 如何正确的操作DOM
无奈接手了一个旧项目,上一个老哥在Angular项目中大量使用了JQuery来操作DOM,真的是太不讲究了.那么如何优雅的使用Angular的方式来操作DOM呢? 获取元素 1.ElementRef ...