这里贴出来的是可通用的C#与jav的DES加密类,希望对大家管用直接复制即可用 
C#DES加密解密类

    1. ///<summary><![CDATA[加密解密帮助类]]></summary>
    2. public class Help_Encrypt
    3. {
    4. ///<summary><![CDATA[字符串DES加密函数]]></summary>
    5. ///<param name="str"><![CDATA[被加密字符串 ]]></param>
    6. ///<param name="key"><![CDATA[密钥 ]]></param>
    7. ///<returns><![CDATA[加密后字符串]]></returns>
    8. public static string Encode(string str, string key)
    9. {
    10. try
    11. {
    12. DESCryptoServiceProvider provider = new DESCryptoServiceProvider();
    13. provider.Key = Encoding.ASCII.GetBytes(key.Substring(0, 8));
    14. provider.IV = Encoding.ASCII.GetBytes(key.Substring(0, 8));
    15. byte[] bytes = Encoding.GetEncoding("GB2312").GetBytes(str);
    16. MemoryStream stream = new MemoryStream();
    17. CryptoStream stream2 = new CryptoStream(stream, provider.CreateEncryptor(), CryptoStreamMode.Write);
    18. stream2.Write(bytes, 0, bytes.Length);
    19. stream2.FlushFinalBlock();
    20. StringBuilder builder = new StringBuilder();
    21. foreach (byte num in stream.ToArray())
    22. {
    23. builder.AppendFormat("{0:X2}", num);
    24. }
    25. stream.Close();
    26. return builder.ToString();
    27. }
    28. catch (Exception) { return "xxxx"; }
    29. }
    30. ///<summary><![CDATA[字符串DES解密函数]]></summary>
    31. ///<param name="str"><![CDATA[被解密字符串 ]]></param>
    32. ///<param name="key"><![CDATA[密钥 ]]></param>
    33. ///<returns><![CDATA[解密后字符串]]></returns>
    34. public static string Decode(string str, string key)
    35. {
    36. try
    37. {
    38. DESCryptoServiceProvider provider = new DESCryptoServiceProvider();
    39. provider.Key = Encoding.ASCII.GetBytes(key.Substring(0, 8));
    40. provider.IV = Encoding.ASCII.GetBytes(key.Substring(0, 8));
    41. byte[] buffer = new byte[str.Length / 2];
    42. for (int i = 0; i < (str.Length / 2); i++)
    43. {
    44. int num2 = Convert.ToInt32(str.Substring(i * 2, 2), 0x10);
    45. buffer[i] = (byte)num2;
    46. }
    47. MemoryStream stream = new MemoryStream();
    48. CryptoStream stream2 = new CryptoStream(stream, provider.CreateDecryptor(), CryptoStreamMode.Write);
    49. stream2.Write(buffer, 0, buffer.Length);
    50. stream2.FlushFinalBlock();
    51. stream.Close();
    52. return Encoding.GetEncoding("GB2312").GetString(stream.ToArray());
    53. }
    54. catch (Exception) { return ""; }
    55. }
    56. }
    57. JAVADES加密解密类
    58. package com.bgxt.messages;
    59. import java.io.UnsupportedEncodingException;
    60. import java.security.*;
    61. import javax.crypto.Cipher;
    62. import javax.crypto.SecretKey;
    63. import javax.crypto.SecretKeyFactory;
    64. import javax.crypto.spec.DESKeySpec;
    65. import javax.crypto.spec.IvParameterSpec;
    66. /**
    67. * 字符串工具集合
    68. * @author Liudong
    69. */
    70. public class StringUtils {
    71. private static final String PASSWORD_CRYPT_KEY = XmlUtil.getConfig().getPasswdKey().substring(0,8);
    72. //private final static String DES = "DES";
    73. //private static final byte[] desKey;
    74. //解密数据
    75. public static String decrypt(String message,String key) throws Exception {
    76. byte[] bytesrc =convertHexString(message);
    77. Cipher cipher = Cipher.getInstance("DES/CBC/PKCS5Padding");
    78. DESKeySpec desKeySpec = new DESKeySpec(key.getBytes("UTF-8"));
    79. SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");
    80. SecretKey secretKey = keyFactory.generateSecret(desKeySpec);
    81. IvParameterSpec iv = new IvParameterSpec(key.getBytes("UTF-8"));
    82. cipher.init(Cipher.DECRYPT_MODE, secretKey, iv);
    83. byte[] retByte = cipher.doFinal(bytesrc);
    84. return new String(retByte);
    85. }
    86. public static byte[] encrypt(String message, String key)
    87. throws Exception {
    88. Cipher cipher = Cipher.getInstance("DES/CBC/PKCS5Padding");
    89. DESKeySpec desKeySpec = new DESKeySpec(key.getBytes("UTF-8"));
    90. SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");
    91. SecretKey secretKey = keyFactory.generateSecret(desKeySpec);
    92. IvParameterSpec iv = new IvParameterSpec(key.getBytes("UTF-8"));
    93. cipher.init(Cipher.ENCRYPT_MODE, secretKey, iv);
    94. return cipher.doFinal(message.getBytes("UTF-8"));
    95. }
    96. public static String encrypt(String value){
    97. String result="";
    98. try{
    99. value=java.net.URLEncoder.encode(value, "utf-8");
    100. result=toHexString(encrypt(value, PASSWORD_CRYPT_KEY)).toUpperCase();
    101. }catch(Exception ex){
    102. ex.printStackTrace();
    103. return "";
    104. }
    105. return result;
    106. }
    107. public static byte[] convertHexString(String ss)
    108. {
    109. byte digest[] = new byte[ss.length() / 2];
    110. for(int i = 0; i < digest.length; i++)
    111. {
    112. String byteString = ss.substring(2 * i, 2 * i + 2);
    113. int byteValue = Integer.parseInt(byteString, 16);
    114. digest[i] = (byte)byteValue;
    115. }
    116. return digest;
    117. }
    118. public static String toHexString(byte b[]) {
    119. StringBuffer hexString = new StringBuffer();
    120. for (int i = 0; i < b.length; i++) {
    121. String plainText = Integer.toHexString(0xff & b[i]);
    122. if (plainText.length() < 2)
    123. plainText = "0" + plainText;
    124. hexString.append(plainText);
    125. }
    126. return hexString.toString();
    127. }
    128. public static void main(String[] args) throws Exception {
    129. String value="01";
    130. System.out.println("加密数据:"+value);
    131. System.out.println("密码为:"+XmlUtil.getConfig().getPasswdKey());
    132. String a=encrypt( value);
    133. System.out.println("加密后的数据为:"+a);
    134. }
    135. }

C#用DES加密JAVA用DES解密,JAVA用DES加密C#用DES解密的实现的更多相关文章

  1. des加密解密——java加密,php解密

    最近在做项目中,遇到des加密解密的问题. 场景是安卓app端用des加密,php这边需要解密.之前没有接触过des这种加密解密算法,但想着肯定会有demo.因此百度,搜了代码来用.网上代码也是鱼龙混 ...

  2. 使用C# DES解密java DES加密的字符串

    转自 microAllen   最近需要使用C#的DES解密工具类解密字符串,但是要解密的字符串是使用java进行DES加密的,去网上查了关于C#和java关于DES加密解密的资料,发现可以相互加密解 ...

  3. des加密解密JAVA与.NET互通实例

    JAVA版本 import javax.crypto.Cipher; import javax.crypto.SecretKey; import javax.crypto.SecretKeyFacto ...

  4. DES加密解密 Java中运用

    DES全称Data Encryption Standard,是一种使用密匙加密的块算法.现在认为是一种不安全的加密算法,因为现在已经有用穷举法攻破DES密码的报道了.尽管如此,该加密算法还是运用非常普 ...

  5. Android DES加密的CBC模式加密解密和ECB模式加密解密

    DES加密共有四种模式:电子密码本模式(ECB).加密分组链接模式(CBC).加密反馈模式(CFB)和输出反馈模式(OFB). CBC模式加密: import java.security.Key; i ...

  6. Des加解密(Java端和Js端配套)解析

    一.什么是DES加密        des对称加密,对称加密,是一种比较传统的加密方式,其加密运算.解密运算使用的是同样的密钥,信息的发送者和信息的接收者在进行信息的传输与处理时,必须共同持有该密码( ...

  7. 【转】asp.net(c#)加密解密算法之sha1、md5、des、aes实现源码详解

    原文地址:http://docode.top/Article/Detail/10003 目录: 1..Net(C#)平台下Des加密解密源代码 2..Net(C#)平台下Aes加密解密源代码 3..N ...

  8. 各种加密解密函数(URL加密解密、sha1加密解密、des加密解密)

    原文:各种加密解密函数(URL加密解密.sha1加密解密.des加密解密) 普通hash函数如md5.sha1.base64等都是不可逆函数.虽然我们利用php可以利用这些函数写出可逆函数来.但是跨语 ...

  9. NET实现RSA AES DES 字符串 加密解密以及SHA1 MD5加密

    本文列举了    数据加密算法(Data Encryption Algorithm,DEA) 密码学中的高级加密标准(Advanced EncryptionStandard,AES)RSA公钥加密算法 ...

  10. Java加密与解密笔记(三) 非对称加密

    非对称的特点是加密和解密时使用的是不同的钥匙.密钥分为公钥和私钥,用公钥加密的数据只能用私钥进行解密,反之亦然. 另外,密钥还可以用于数字签名.数字签名跟上文说的消息摘要是一个道理,通过一定方法对数据 ...

随机推荐

  1. 《ENVI下遥感影像自然真彩色合成方法》——TM、spot5

    来源:http://blog.sina.com.cn/s/blog_764b1e9d0100tz4f.html#bsh-73-375271630

  2. Java类加载器加载类顺序

    java ClassLoader的学习 java是一门解释执行的语言,由开发人员编写好的java源文件先编译成字节码文件.class形式,然后由java虚拟机(JVM)解释执 行,.class字节码文 ...

  3. 过长文字自动换行的技巧 Word-Break Word-Wrap

    在很多时候,为了防止内容过长把表格或容器撑破, 我们都需要为容器加上自动换行的功能. 实现自动换行,用CSS来实现,通常有两种方式: word-break: 取值为 normal, break-all ...

  4. 谈谈怎么实现Oracle数据库分区表

    谈谈怎么实现Oracle数据库分区表 数据库的读写分离 SQLSERVER性能监控级别步骤 Oracle索引问题诊断与优化(1)

  5. hdu 4657 Find Permutation

    思路:用一个数组index[]存放a的下标,初始化令a[i]=c[i]=index[i]=i; 假设当前处理的i,初始时令cur=i:j为大于i的任意值.每次操作找a[l]=c[cur]-b[cur] ...

  6. maven3常用命令\创建Project

    转自 http://blog.csdn.net/edward0830ly/article/details/8748986 ------------------------------maven3常用命 ...

  7. Servlet中乱码问题

    页面编码方式为utf-8 当使用post传值时 request.setContentType("utf-8"); 当使用get传值时 String str = request.ge ...

  8. Ubuntu 12.04安装字体

    http://www.2cto.com/os/201210/160645.html 安装方法,终端输入:  $ sudo thunar /usr/share/fonts/truetype  待ture ...

  9. HeadFirst设计模式之组合模式

    一. 1.The Composite Pattern allows us to build structures of objects in the form of trees that contai ...

  10. HeadFirst设计模式之装饰者模式

    一. 1.The Decorator Pattern attaches additional responsibilities to an object dynamically.Decorators ...