2 hack6500 Hack6500 于 2016.03.09 16:43 提问

(C#转JAVA)DES加密解密问题 。带入整8B加密数据, JAVA写的总是比C#写的多出来8B 1C

C#

private byte[] CSharpEncryptByte(byte[] InputByte, byte[] sKey)

{

   DESCryptoServiceProvider DES = new DESCryptoServiceProvider();

   DES.Padding = PaddingMode.Zeros;

   DES.Key = sKey;

   DES.IV = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 };

   ICryptoTransform desencrypt = DES.CreateEncryptor();

   byte[] result = desencrypt.TransformFinalBlock(InputByte, 0, InputByte.Length);

   return result;

}

JAVA

public static byte[] JavaEncryptByte(byte[] InputByte, byte[] bKey)
throws Exception
{
byte[] ivdata = new byte[]{0, 0, 0, 0, 0, 0, 0, 0};
IvParameterSpec spec = new IvParameterSpec(ivdata);
SecretKeySpec keySpec = new SecretKeySpec(bKey, "DES");
Cipher cipherex = Cipher.getInstance("DES/CBC/ZeroBytePadding");
cipherex.init(Cipher.ENCRYPT_MODE, keySpec, spec);
byte[] encdata = cipherex.doFinal(InputByte, 0, InputByte.length);
return encdata;
}

1个回答

sx011966
sx011966   2016.03.10 09:54

试试看ECB模式,DES/ECB/ZeroBytePadding

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
java和安卓DES加密结果不一致的问题,完美解决
之前的连接:http://blog.csdn.net/randyjiawenjie/article/details/6617225#plain 那个方法在英文状态下确实可以一直,中文不行,这是编码问题。稍作修改。 加密方法 byte[] encryptedData = cipher.doFinal(encryptString.getBytes());  改成 byte[] encry
C#与Java同步加密解密DES算法
在实际项目中,往往前端和后端使用不同的语言。比如使用C#开发客户端,使用Java开发服务器端。有时出于安全性考虑需要将字符加密传输后,由服务器解密获取。本文介绍一种采用DES算法的C#与Java同步加密解密的代码。
C#DES加密,JavaDES解密,另转C#和Java实现Des完整代码
C#做DES有加密向量IV,Java常见方式是没有的。
自己写的DES加密解密 ASP.NET(C#)
自己写的简单DES加密加密 public partial class _Default : System.Web.UI.Page { private static byte[] Key64 = { 42, 16, 93, 156, 78, 4, 218, 32 }; private static byte[] IV64 = { 55, 103, 246, 79, 36, 99, 167, 3 }; protected void Page_Load(object sender, EventArgs e) { } protected void Button1_Click(object sender, EventArgs e) { string p = Server.MapPath("~/wcn/"); int i; FileStream fin = new FileStream(p+TextBox1.Text, FileMode.Open, FileAccess.Read); FileStream fout = new FileStream(p+TextBox2.Text, FileMode.OpenOrCreate, FileAccess.Write); FileStream skey = new FileStream(p + "key.txt", FileMode.OpenOrCreate, FileAccess.ReadWrite); FileStream siv = new FileStream(p + "key.txt", FileMode.OpenOrCreate, FileAccess.ReadWrite); fout.SetLength(0); byte[] bin = new byte[100]; long rdlen = 0; long totlen = fin.Length; int len; DES des = new DESCryptoServiceProvider(); des.Key = Key64; des.IV = IV64; TextBox3.Text = des.Key[0].ToString(); StreamWriter w = new StreamWriter(skey); w.Write(des.Key[0]); w.Flush(); for (i = 0; i < 8; i++) { TextBox3.Text = TextBox3.Text + "," + des.Key[i].ToString(); //StreamWriter w = new StreamWriter(skey); w.Write(","+des.Key[i]); w.Flush(); } CryptoStream encStream = new CryptoStream(fout, des.CreateEncryptor(), CryptoStreamMode.Write); while (rdlen < totlen) { len = fin.Read(bin, 0, 100); encStream.Write(bin, 0, len); rdlen = rdlen + len; } encStream.Close(); fout.Close(); fin.Close(); } protected void Button3_Click(object sender, EventArgs e) { string p = Server.MapPath("~/wcn/"); FileStream fin = new FileStream(p + TextBox4.Text, FileMode.Open, FileAccess.Read); FileStream fout = new FileStream(p + TextBox5.Text, FileMode.OpenOrCreate, FileAccess.Write); fout.SetLength(0); byte[] bin = new byte[100]; long rdlen = 0; long totlen = fin.Length; int len; DES des = new DESCryptoServiceProvider(); des.Key = Key64; des.IV = IV64; CryptoStream decStream = new CryptoStream(fout, des.CreateDecryptor(), CryptoStreamMode.Write); while (rdlen < totlen) { len = fin.Read(bin, 0, 100); decStream.Write(bin, 0, len); rdlen = rdlen + len; } decStream.Close(); fout.Close(); fin.Close(); } }
C#解密(DES)Java的加密结果
工作需要,要工C#实现Java的加密解密功能。资料有1.Java代码package com.sitech.crmpd.security; /** * 两级界面集成 加解密 * meixy 2013-03-14 */ import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInput...
C#中DES的16进制加解密
再C#中,其实DESCryptoServiceProvider这个加密类,相比其它语言,如java是有所加强的,但默认设置的实现却不同,要解决与java等语言写的DES加密达到一致,需要对该类的有关属性进行设置。
C#写Des加密解密算法
马上就要实习了,求大大们介绍工作。QQ:1028962069我只写关键代码。 界面如下 类using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Security.Cryptography; using System.IO; namespace DES加密
C#/JAVA/PHP 互通DES加解密算法(ECB模式支持8位)
C#/JAVA/PHP 互通DES_EBC加密解密算法(支持8位)
DES 加密后转16进制输出
+ (NSString *) encryptUseDES:(NSString *)plainText key:(NSString *)key {     NSString *ciphertext = nil;     const char *textBytes = [plainText UTF8String];     size_t dataLength = [plainTex
JAVA DES加密(DES/ECB/PKCS5Padding)和C#加密对应设置
java的: public static String encryptDES(String paramString1, String paramString2) throws Exception { SecretKeySpec localSecretKeySpec = new SecretKeySpec(paramString2.getBytes()