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 ...
随机推荐
- Wordpress“固定链接”页面出现404原因及解决方法
编辑配置文件:/etc/apache2/apache2.conf(非常靠后的位置),将里面的AllowOverride选项由None设置为All. <Directory /> Option ...
- Nginx unit 源码安装初体验
Nginx unit 源码安装初体验 上次介绍了从yum的安装方法(https://www.cnblogs.com/wang-li/p/9684040.html),这次将介绍源码安装,目前最新版为1. ...
- python之os库
python之os库 os.name 判断现在正在实用的平台,Windows 返回 'nt'; Linux 返回'posix' >>> os.name 'nt' os.getcwd( ...
- 浅析软件工程中的UML建模技术
一.基本信息 标题:浅析软件工程中的UML建模技术 时间:2018 出版源:电子世界 领域分类:软件工程:UML建模技术:需求分析 二.研究背景 问题定义:软件工程中UML建模技术的研究 难点:明确软 ...
- cf 700e(sam好题,线段树维护right)
代码参考:http://blog.csdn.net/qq_33229466/article/details/79140428 #include<iostream> #include< ...
- 2-postman批量执行接口
1.postman环境设置与使用 1)点击设置,添加按钮 2)填写环境名称,参数 3)切换环境 4)使用环境变量,使用格式为:{{变量名}} 2.postman批量执行接口 1)选择要执行的文件夹,点 ...
- Apache Phoenix Flume集成 -- JsonEventSerializer改进
背景 数据从kafka ingest到Phoenix.数据格式采取Json.数据链路: api -> kafka -> Flume -> Phoenix 官方JsonEventSer ...
- grid布局笔记学习一之父元素(容器)
HTML代码: <div id="box"> <div class="lbox box1" style="background: # ...
- [Swift]正则表达式工具类
正则表达式工具类 import Foundation //基于NSRegularExpression api 的正则处理工具类 public struct Regex { private let re ...
- CentOS 配置SOCKS5代理服务
SOCKS5 是一个代理协议,它在使用TCP/IP协议通讯的前端机器和服务器机器之间扮演一个中介角色,使得内部网中的前端机器变得能够访问Internet网中的服务器,或者使通讯更加安全 通过yum安装 ...