DESC加密方法

直接上代码:

1、加密

/// <summary>
/// 加密
/// </summary>
/// <param name="obj"></param>
/// <returns></returns>
public static string EncryptParameter(object obj)
{
if (obj == null)
{
return "";
}
StringBuilder builder = new StringBuilder();
try
{
string str = obj.ToString();
DESCryptoServiceProvider provider = new DESCryptoServiceProvider(); provider.Key = Encoding.UTF8.GetBytes(_securityKey); provider.IV = Encoding.UTF8.GetBytes(_securityKey); byte[] bytes = Encoding.UTF8.GetBytes(str); MemoryStream stream = new MemoryStream(); CryptoStream stream2 = new CryptoStream(stream, provider.CreateEncryptor(), CryptoStreamMode.Write); stream2.Write(bytes, , bytes.Length); stream2.FlushFinalBlock(); foreach (byte num in stream.ToArray())
{ builder.AppendFormat("{0:X2}", num);
} stream.Close(); }
catch (Exception ex)
{
LogHelper.LogError(ex);
}
return builder.ToString(); }

2、解密

        /// <summary>
/// 解密
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static string DecryptParameter(string str)
{
try
{
DESCryptoServiceProvider provider = new DESCryptoServiceProvider(); provider.Key = Encoding.ASCII.GetBytes(_securityKey); provider.IV = Encoding.ASCII.GetBytes(_securityKey); byte[] buffer = new byte[str.Length / ]; for (int i = ; i < (str.Length / ); i++)
{ int num2 = Convert.ToInt32(str.Substring(i * , ), 0x10); buffer[i] = (byte)num2; } MemoryStream stream = new MemoryStream(); CryptoStream stream2 = new CryptoStream(stream, provider.CreateDecryptor(), CryptoStreamMode.Write); stream2.Write(buffer, , buffer.Length); stream2.FlushFinalBlock(); stream.Close(); return Encoding.GetEncoding("GB2312").GetString(stream.ToArray());
}
catch
{
return string.Empty;
}
}

设置一个_securityKey字符串,加密、解密的密钥要同一个才行。

因此正如其它人加密后的文件,用常用方法是打不开的,密钥不一样~

C# DESC加密的更多相关文章

  1. DESC加密解密算法

    using System; using System.Text; using System.Windows.Forms; using System.Security.Cryptography; usi ...

  2. Zip文件压缩(加密||非加密||压缩指定目录||压缩目录下的单个文件||根据路径压缩||根据流压缩)

    1.写入Excel,并加密压缩.不保存文件 String dcxh = String.format("%03d", keyValue); String folderFileName ...

  3. PHP 简单的加密解密方法

    本算法的基础:给定字符A B,A^B=C,C^B=A,即两次异或运算可得到原字符.实现代码如下: /** * @desc加密 * @param string $str 待加密字符串 * @param ...

  4. PHP 识别 java 8位 des 加密和 解密方式

    代码及使用说明: <?php /** *PHP 识别 java 8位密钥的加密和解密方式 *@desc 加密方式 通用 */ class DES { var $key; var $iv; //偏 ...

  5. C#,调用dll产生 "尝试读取或写入受保护的内存 。这通常指示其他内存已损坏。"的问题

    由于易语言与c#做的DESC加解密方式,返回的数据不一致,所以,我用易语言写了一个dll,供c#调用, 结果在post的时候,有时候能正确返回数据,有时候则不能正常返回,而是返回空数据(c#没有做异常 ...

  6. PHP实现一个二维码同时支持支付宝和微信支付

    实现思路 生成一个二维码,加入要处理的url连接 在用户扫完码后,在对应的脚本中,判断扫码终端,调用相应的支付 若能够扫码之后能唤起相应app,支付宝要用手机网站支付方式,微信要使用jsapi支付方式 ...

  7. GreenDao3.0新特性解析(配置、注解、加密)

    Greendao3.0release与7月6日发布,其中最主要的三大改变就是:1.换包名 2.实体注解 3.加密支持的优化 本文里面会遇到一些代码示例,就摘了官方文档和demo里的例子了,因为他们的例 ...

  8. 用js加密你的重要信息

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  9. Java和.NET使用DES对称加密的区别

    Java和.NET的系统类库里都有封装DES对称加密的实现方式,但是对外暴露的接口却各不相同,甚至有时会让自己难以解决其中的问题,比如Java加密后的结果在.NET中解密不出来等,由于最近项目有跨Ja ...

随机推荐

  1. AngularJs $q promise

    angularjs提供的$q服务是对Promises规范的一个实现.$q服务可以把一段异步的代码封装成同步的样式. 为啥是样式,因为异步还是异步,它并不会柱塞代码,只是看起来像同步代码. $q.whe ...

  2. 用Javascript模拟微信飞机大战游戏

    最近微信的飞机大战非常流行,下载量非常高. 利用JS进行模拟制作了一个简单的飞机大战[此源码有很多地方可以进行重构和优化] [此游戏中没有使用HTML5 任何浏览器都可以运行]. 效果图: 原理:利用 ...

  3. 使用toggle()方法进行显示隐藏

    这是一个示例: <html> <head> <script type="text/javascript" src="http://keley ...

  4. 什么是java 序列化,如何实现java 序列化?

    我们有时候将一个 java 对象变成字节流的形式传出去或者从一个字节流中恢复成一个java 对象,例如,要将java 对象存储到硬盘或者传送给网络上的其他计算机,这个过程我们可以自己写代码去把一个ja ...

  5. 十一个行为模式之备忘录模式(Memento Pattern)

    定义: 在不破坏原有封装的情况下,捕获一个对象的内部状态,并在对象之外保存.当对象出错或者无效是,可以根据该备忘录进行恢复. 结构图: Originator:原发类,被记录的对象,包含若干内部状态.一 ...

  6. Xdebug文档(七) 远程调试

    Xdebug提示调试客户端接口与PHP运行相联系.该章节解释如何设置PHP与xdebug,并推荐一些客户端. 介绍 Xdebug的远程调试器允许你检查数据结构,交互式地穿过和调试你的代码.该协议已经开 ...

  7. 前端工程师如何快速的开发一个微信JSSDK应用

    亲们,订阅号出来已经很久了,作为一个前端工程师或者全栈工程师,你是不是错过了什么?大概许多攻城狮同砚还没有反应过来订阅号怎么回事,就马上要被微信的应用号秀一脸了.在应用号还没有正式出来之前,我们赶紧一 ...

  8. Manage application.conf in several environments

    When you work in a team, different developers will use different configuration keys in theirapplicat ...

  9. javascript封装与多态的体现

    封装是实现面向对象程序设计的第一步,封装就是将数据与函数等集合在一个个的单元中(我们称之为类).被封装的对象通常被称为抽象数据类型. 在传统的面向对象语言中有访问修饰符,如Private:只有类本身能 ...

  10. 接入统计Crash的工具Crashlytics-ios

    1. 注册账户 登录网站 https://get.fabric.io/ 来注册新的账户 2. account confirmed之后就出现相应的设置页面,设置你的team的名称 3. 出现页面提示下载 ...