易截截图软件、单文件、免安装、纯绿色、仅160KB

用 Java 解密 C# 加密的数据(DES)

 
用 Java 解密 C# 加密的数据(DES)
[原文地址:http://yidinghe.cnblogs.com/articles/449212.html]
今天碰上一件令我头大的事情。我们的系统要和一个外部系统进行通讯,传输方式是采用 DES 算法对消息进行加密,再用 BASE64 编码。不过对方系统是用 C# 写的。平台不一样,于是我和对面的老兄先测试一下加密解密。这一测试问题就来了。两边采用同样的密钥,对同一个字符串加密出来的结果不一样。怎么办呢?我先把他那边的代码要过来了,他是这样写的(C#):
    public static string Encrypt(string message, string key)
    {
        DES des = new DESCryptoServiceProvider();
        des.Key = Encoding.UTF8.GetBytes(key);
        des.IV = Encoding.UTF8.GetBytes(key);
        byte[] bytes = Encoding.UTF8.GetBytes(message);
        byte[] resultBytes = des.CreateEncryptor().TransformFinalBlock(bytes, 0, bytes.Length);
        return Convert.ToBase64String(resultBytes);
    }  
而我这边呢,是用 Java 这样写的(仅仅加密到字节串,BASE64 编码是在另一个类里):
    public static byte[] desEncrypt(String message, String key) throws Exception {
        Cipher cipher = Cipher.getInstance("DES");
        DESKeySpec desKeySpec = new DESKeySpec(key.getBytes("UTF-8"));
        SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");
        SecretKey secretKey = keyFactory.generateSecret


相关文档:

Java源代码的折行规则

一些企业在招聘程序员的时候,总会特意提出一个要求,即要求具有良好的编码规范。确实现在程序开发人员已经不在是单枪匹马的单干,而是讲究团体作战。此时就要求团队内的乘员都可能够恪守代码的编写规范,这对于乘员之间共享代码、排错等作业都具有非常现实的意义。这在Java语言中当然也不例外。笔者借这次机会,就跟大家分 ......

c# 操作 sqlite

  SQLite是一个精巧的轻量级数据库,今天终于基本掌握了如何用C#操作SQLite数据库。根据网友们的经验,至少有两种方法可以做到SQLite的调用,一种是调用sqlite3.dll,一种是用System.Data.SQLite,即sqlite.ADO.NET,是专为C sharp封装的sqlite函数,很流行。
        简单描 ......

java第5天的代码

/*****************Animal.java begin ***********************/
 public class Animal{
 
 public void jj(){
  
 }
 
 public static void main(String args[]){
  //编译时类型       //运行时类型
  Animal anima ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号