using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Security.Cryptography;
using System.Text;
using System.IO; namespace WeiXin.Core
{
public class Cryptography
{
#region SHA1加密
public static string SHA1_EncryptToFormat(string str)
{
SHA1CryptoServiceProvider sha1 = new SHA1CryptoServiceProvider();
StringBuilder encryptText = new StringBuilder();
byte[] strRes = Encoding.Default.GetBytes(str);
strRes = sha1.ComputeHash(strRes);
foreach (byte iByte in strRes)
{
encryptText.AppendFormat("{0:x2}", iByte);
}
sha1.Dispose();
return encryptText.ToString();
} public static string SHA1_EncryptToBase64String(string str)
{
SHA1CryptoServiceProvider sha1 = new SHA1CryptoServiceProvider();
byte[] strRes = Encoding.UTF8.GetBytes(str);
strRes = sha1.ComputeHash(strRes);
sha1.Dispose();
return Convert.ToBase64String(strRes);
}
public static byte[] SHA1_Encrypt(byte[] str)
{
SHA1CryptoServiceProvider sha1 = new SHA1CryptoServiceProvider();
byte[] strHash = sha1.ComputeHash(str);
sha1.Dispose();
return strHash;
}
#endregion #region 对称加密 /// <summary>
/// 对称算法,机密字符串
/// </summary>
/// <param name="Value">要加密的字符串</param>
/// <returns>covert成ToBase64String类型的加密字符串</returns>
public static string DataEncrypt(string Value)
{
try
{
byte[] buffer1 = Convert.FromBase64String("iw/k5uRzMdk=");
byte[] buffer2 = Convert.FromBase64String("c/DP9HnKryk=");
DESCryptoServiceProvider provider1 = new DESCryptoServiceProvider();//实例化des对称加密标准
provider1.Key = buffer1;//机密密钥
provider1.IV = buffer2; //初始化向量
ICryptoTransform transform1 = provider1.CreateEncryptor(provider1.Key, provider1.IV);//定义基本的加密转换运算
byte[] buffer3 = Encoding.UTF8.GetBytes(Value);//将要加密的字符串编码为一个字节序列
MemoryStream stream1 = new MemoryStream();//内存流
CryptoStream stream2 = new CryptoStream(stream1, transform1, CryptoStreamMode.Write);//加密流
stream2.Write(buffer3, , buffer3.Length);
stream2.FlushFinalBlock();//用缓冲区的当前状态更新基础数据源或储存库,随后清除缓冲区。
stream2.Close();//关闭当前流并释放与之关联的所有资源(如套接字和文件句柄)
return Convert.ToBase64String(stream1.ToArray());
}
catch
{
return "error";
}
} /// <summary>
/// 对称算法,解密字符串
/// </summary>
/// <param name="Value">需要解密的字符串</param>
/// <returns>将解密后的流写入字节数组,然后将字节数组解码为一个字符串</returns>
public static string DataDecrypt(string Value)
{
try
{
byte[] buffer1 = Convert.FromBase64String("iw/k5uRzMdk=");
byte[] buffer2 = Convert.FromBase64String("c/DP9HnKryk=");
DESCryptoServiceProvider provider1 = new DESCryptoServiceProvider();
provider1.Key = buffer1;
provider1.IV = buffer2;
ICryptoTransform transform1 = provider1.CreateDecryptor(provider1.Key, provider1.IV);//定义基本解密转换运算
byte[] buffer3 = Convert.FromBase64String(Value);
MemoryStream stream1 = new MemoryStream();
CryptoStream stream2 = new CryptoStream(stream1, transform1, CryptoStreamMode.Write);//CryptoStreamMode.Write对加密流的写访问
stream2.Write(buffer3, , buffer3.Length);//按照transform1解密算法向流中写入需要解密的字符串
stream2.FlushFinalBlock();
stream2.Close();
return Encoding.UTF8.GetString(stream1.ToArray());//将流写入字节数组,然后将字节数组解码为一个字符串
}
catch
{
return "error";
}
}
#endregion }
}

Cryptography加密和解密的更多相关文章

  1. 转:system.Security.Cryptography C# 加密和解密

    以下文转自: http://www.360doc.com/content/13/0122/05/19147_261678471.shtml 总结:注册的时候经过MD5加密存进数据库,在登录的时候需要先 ...

  2. python3利用cryptography 进行加密和解密

    我们的日常工作中,一定会遇到需要加密的数据,比如:密码.私密信息... ... 我们不仅要对他们进行加密,更需要对他们进行解密,因为毕竟我们的用户应该不会看得懂加密过后的字符串吧!!! 在python ...

  3. 加密与解密 Sytem.Security.CryptoGraphy

    一.Hash加密,使用HashAlgorithm哈希算法类的派生类 HashAlgorithm派生类包括: KeyedHashAlgorithm: 显示所有加密哈希算法实现均必须从中派生的抽象类. M ...

  4. 【知识积累】DES算法之C#加密&Java解密

    一.前言 在项目需要添加安全模块,客户端调用服务端发布的service必须要经过验证,加密算法采用DES,客户端采用C#进行加密,服务端使用Java进行解密.废话不多说,直接上代码. 二.客户端 客户 ...

  5. .Net中的加密与解密

    加密与解密概述 加密与解密属于数据安全的范畴.在消息传输时,通过对消息进行特殊编码(加密),建立一种安全的交流方式,使得只有发送者所期望的接收者能够理解(解密).这里我们定义一个场景:发送方,接收方, ...

  6. C#使用RSA证书文件加密和解密示例

    修改MSDN上的示例,使之可以通过RSA证书文件加密和解密,中间遇到一个小问题. Q:执行ExportParameters()方法时,回报CryptographicException:该项不适于在指定 ...

  7. DESCryptoServiceProvider加密、解密

    .net名称空间System.Security.Cryptography下DESCryptoServiceProvider类为我们提供了加密和解密方法,我们只需少许代码便可实现加密和解密. 稍感不托的 ...

  8. 基于私钥加密公钥解密的RSA算法C#实现

    RSA算法是第一个能同时用于加密和数字签名的算法,也易于理解和操作. RSA是被研究得最广泛的公钥算法,从提出到现在已近二十年,经历了各种攻击的考验,逐渐为人们接受,普遍认为是目前最优秀的公钥方案之一 ...

  9. java c# 加密与解密对照

    原文 java c# 加密与解密对照 最近一直烦恼,java , c# 加密的不同,然后整理了一下,留个备份的轮子: 其中在 java.c#加密转换时,最重要的是 IV 的确定,我常常用如下方法使得j ...

随机推荐

  1. 《JavaScript权威指南》读书笔记(三)

    日期:2015-12-05 浏览器location和history: replace不会显示历史,location会: history对象脚本不能真正访问,但支持三种方法:back().foward( ...

  2. 20145236 《Java程序设计》 第十周学习总结

    20145236 <Java程序设计> 第十周学习总结 Java网络编程 Java网络编程技术 Java语言是在网络环境下诞生的,所以Java语言虽然不能说是对于网络编程的支持最好的语言, ...

  3. OLE填充EXCEL

    先把基本的FORM写好: 1.行列属性 FORM row_column USING p_r p_width p_type. CASE p_type. WHEN 'R'. "行高 = p_r ...

  4. Hadoop 添加删除数据节点(datanode)

    前提条件: 添加机器安装jdk等,最好把环境都搞成一样,示例可做相应改动 实现目的: 在hadoop集群中添加一个新增数据节点. 1. 创建目录和用户  mkdir -p /app/hadoop gr ...

  5. windows下捕获dump之守护进程

    一两个月前为产品写了一个独立的exe,由于产品使用的捕获dump是一个现成的进程外exe,如果以资源的方式集成它容易出现安全警告,由于时间关系没有寻求新的解决方法,还是遵循旧方案,不捕获dump. 最 ...

  6. JDE910笔记1--基础介绍及配置[转]

    1.一般JDE部署后环境: DV:开发环境 PY:测试环境 PD:正式环境 根据端口号区分不同环境,可配置.同时,JDE默认使用分发服务器,不同环境连接为不同的数据库. 2.命名规范: 自定义项目.函 ...

  7. 关于php用simplexml_load_string解析xml出现乱码的小结

    最近在做项目时需要通过xml接口读取合作伙伴数据到数据库,在xml解析环节出现有些特殊中文字符乱码的现象.后采取下面的办法终于解决. 1.curl 抓取过来的字符是unicode编码,需要先转换为ut ...

  8. gitlab配置邮件通知

    配置用户提交评论.添加issue等的邮件通知: Gitlab邮件提醒方便跟踪项目进度,在这里介绍两种方式,一种是用系统的sendmail发送邮件,另一种是GMAIL的stmp来发送邮件 第一种 用系统 ...

  9. FZU 2090 旅行社的烦恼 floyd 求无向图最小环

    题目链接:旅行社的烦恼 题意是求无向图的最小环,如果有的话,输出个数,并且输出权值. 刚刚补了一发floyd 动态规划原理,用了滑动数组的思想.所以,这个题就是floyd思想的变形.在k从1到n的过程 ...

  10. tortoisegit教程

    tortoisegit教程: http://www.mamicode.com/info-detail-311565.html https://my.oschina.net/longxuu/blog/1 ...