这个加密类是与java写的DES加密不同时,自己写的,最后与Java的加密相同了,解决了加密后不同的问题。

可以直接调用里面的加密和解密的方法。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;using System.Text;
using System.Security.Cryptography;
using System.IO;namespace EallNum.Helper
{public class FI_DesTools{private FI_DesTools() {} private static string key = "×××××"; /// <summary> /// 对称加密解密的密钥 /// </summary> public static string Key{ get { return key;} set { key = value;} } /// <summary> /// DES加密 /// </summary> /// <param name="encryptString"></param> /// <returns></returns> public static string DesEncrypt(string strEncryptString) {StringBuilder strRetValue = new StringBuilder();try{byte[] keyBytes = Encoding.UTF8.GetBytes(key.Substring(0, 8)); byte[] keyIV = keyBytes;byte[] inputByteArray = Encoding.UTF8.GetBytes(strEncryptString); DESCryptoServiceProvider provider = new DESCryptoServiceProvider();provider.Mode = CipherMode.ECB;//兼容其他语言的Des加密算法  provider.Padding = PaddingMode.Zeros;//自动补0
                          MemoryStream mStream = new MemoryStream(); CryptoStream cStream = new CryptoStream(mStream, provider.CreateEncryptor(keyBytes, keyIV), CryptoStreamMode.Write); cStream.Write(inputByteArray, 0, inputByteArray.Length); cStream.FlushFinalBlock(); //不使用base64编码//return Convert.ToBase64String(mStream.ToArray()); //组织成16进制字符串            foreach (byte b in mStream.ToArray()){strRetValue.AppendFormat("{0:X2}", b);}}catch (Exception e){Console.WriteLine(e);}return strRetValue.ToString();} /// <summary> /// DES解密 /// </summary> /// <param name="decryptString"></param> /// <returns></returns>         public static string DesDecrypt(string strDecryptString){string strRetValue = "";try{   byte[] keyBytes = Encoding.UTF8.GetBytes(key.Substring(0, 8));byte[] keyIV = keyBytes;//不使用base64解码//byte[] inputByteArray = Convert.FromBase64String(decryptString);//16进制转换为byte字节byte[] inputByteArray = new byte[strDecryptString.Length / 2];for (int x = 0; x < strDecryptString.Length / 2; x++){int i = (Convert.ToInt32(strDecryptString.Substring(x * 2, 2), 16));inputByteArray[x] = (byte)i;}DESCryptoServiceProvider provider = new DESCryptoServiceProvider();provider.Mode = CipherMode.ECB;//兼容其他语言的Des加密算法  provider.Padding = PaddingMode.Zeros;//自动补0
MemoryStream mStream = new MemoryStream();CryptoStream cStream = new CryptoStream(mStream, provider.CreateDecryptor(keyBytes, keyIV), CryptoStreamMode.Write);cStream.Write(inputByteArray, 0, inputByteArray.Length);cStream.FlushFinalBlock();//需要去掉结尾的null字符//strRetValue = Encoding.UTF8.GetString(mStream.ToArray());strRetValue = Encoding.UTF8.GetString(mStream.ToArray()).TrimEnd('\0');}catch (Exception e){Console.WriteLine(e);}return strRetValue;}}
}

转载于:https://www.cnblogs.com/dakai620/p/4210917.html

C# DES加密类,16位的加密。相关推荐

  1. PHP实现MD5加密(16位加密和32位加密)

    MD5加密是我们开发过程中很常用的一个加密方法,由于它的不可逆性所以经常被用来对密码加密.常用的加密方式例如"账号+特殊符号+密码"再经过MD5加密,这样就算加密后的密码被看到了, ...

  2. Java Android 32位16位 MD5加密

    // md5加密 32位小写 private String Md5(String sourceStr) { String result = ""; try { MessageDig ...

  3. php rsa加密实例,php实现RSA加密类实例,phprsa加密实例_PHP教程

    php实现RSA加密类实例,phprsa加密实例 本文实例讲述了php实现RSA加密类.分享给大家供大家参考.具体分析如下: 通过openssl实现的签名.验签.非对称加解密,需要配合x.509证书( ...

  4. admin及admin888 经过 md5加密后16位和32位代码

    下面是 admin 的加密代码: 16位加密:7a57a5a743894a0e 32位加密:21232f297a57a5a743894a0e4a801fc3 admin888的MD5加密码 16位:4 ...

  5. 块加密不足16位补充

    经常遇到块加密算法,必须固定位进行加密,所以有必须进行补充 如果是16位一般按照下面的原则 原则:必须补,并且最后一个字节为补的字节数 补的个数为 16 - Len % 16 规则:最后位为后补的个数 ...

  6. MD5加密,16位加密,32位加密,Base64加密,解密

    首先,16位加密与32位加密的区别,在于16位加密就是在32位加密的字符串中取中间16位,即是第9位到24位 比如现在有密码 sys 32位加密后的字符串就是 36BCBB801F5052739AF8 ...

  7. 最新C# MD5 32位加密和16位加密

    /// <summary>/// MD5加密/// </summary>/// <param name="str">加密字符</param ...

  8. php des加密解密 16位,php DES加密解密的代码一例

    /** * php des加密与解密 * by http://www.jbxue.com */ function do_mencrypt($input, $key) { $input = str_re ...

  9. Java实现MD5(32/16位大小写)加密

    MD5简单介绍 大家都知道,地球上任何人都有自己独一无二的指纹,这常常成为公安机关鉴别罪犯身份最值得信赖的方法:与之类似,MD5就可以为任何文件(不管其大小.格式.数量)产生一个同样独一无二的&quo ...

最新文章

  1. 免除重装系统的烦恼,为SSD做系统移植,并从光驱位SSD启动系统
  2. 怎么用vc采集ni卡数据_SystemLink自学笔记(6):SystemLink架构和数据服务
  3. 谈谈你对云计算技术的看法
  4. 《The Corporate Startup》作者访谈
  5. 17.立体匹配——更好的效果与挑战,总结_5
  6. java的多线程机制(文字描述区别)
  7. POJ-2226 Muddy Fields 最小点集覆盖
  8. SQL Identity自增列清零方法
  9. java 应用 中文字体_Linux 添加中文字体库,解决Java 生成中文水印不显示问题
  10. FLTK学习笔记1-绘制基本控件(按钮、文本输入、容器)
  11. 单因素方差分析及其相关检验
  12. 用html写QQ邮箱注册页面,制作简易QQ邮箱登录页面
  13. DeFCN debug记录(训练过程),以及对cvpods框架的分析
  14. mac安装linux时触控板不能用,macbookpro上装Deepin 20.2后wifi和触摸板不可用的解决
  15. 全国大学生“高教杯“成图大赛:关于齿轮的快速建模研究
  16. 我国互联网遭境外网络攻击
  17. vux scroller在iOS13上,一停止滑动就跳到顶部
  18. C语言-switch-case语句与多分支结构
  19. 基于深度学习的人脸识别系统:卷积神经网络实现(VIPLFaceNet、VGGNet、Xception、ResNet50、ResNet18)、AM-Softmax损失
  20. 集十三位资深程序员毕生功力回答:普通程序员如何自学才能进大厂?

热门文章

  1. Spring源码分析——资源访问利器Resource之接口和抽象类分析
  2. 为什么已有Elasticsearch,我们还要重造实时分析引擎AresDB?
  3. excel怎么把单元格内某个字标红,其他字不变
  4. Facebook 开源 Skip,面向对象+函数式编程语言
  5. WPF绘制光滑连续贝塞尔曲线
  6. Linux权限管理总结(1)--基础权限
  7. [IOC]Unity使用
  8. ubuntu搭建lnmp+Yaf+Redis环境
  9. Win7下如何更改时间日期
  10. 轻松Ghost XP系统!