c# des加密和javad des加密不一致

问题描述

java加密,已经写好的不能修改。publicstaticStringencrypt(StringstrIn,Stringkey)throwsException{returnbyteArr2HexStr(encrypt(strIn.getBytes(),key));}publicstaticStringbyteArr2HexStr(byte[]arrB)throwsException{intiLen=arrB.length;//每个byte用两个字符才能表示,所以字符串的长度是数组长度的两倍StringBuffersb=newStringBuffer(iLen*2);for(inti=0;i<iLen;i++){intintTmp=arrB[i];//把负数转换为正数while(intTmp<0){intTmp=intTmp+256;}//小于0F的数需要在前面补0if(intTmp<16){sb.append("0");}sb.append(Integer.toString(intTmp,16));}returnsb.toString();}publicstaticbyte[]encrypt(byte[]arrB,Stringkey)throwsException{SecretKeydeskey=newjavax.crypto.spec.SecretKeySpec(key.getBytes(),"DES");CipherencryptCipher=Cipher.getInstance("DES");encryptCipher.init(Cipher.ENCRYPT_MODE,deskey);returnencryptCipher.doFinal(arrB);}

C#代码publicstaticstringEncrypt(stringpToEncrypt,stringsKey){DESCryptoServiceProviderprovider=newDESCryptoServiceProvider();provider.Mode=CipherMode.ECB;byte[]bytes=Encoding.UTF8.GetBytes(pToEncrypt);provider.Key=Encoding.ASCII.GetBytes(sKey);provider.IV=Encoding.ASCII.GetBytes(sKey);MemoryStreamstream=newMemoryStream();CryptoStreamstream2=newCryptoStream(stream,provider.CreateEncryptor(),CryptoStreamMode.Write);stream2.Write(bytes,0,bytes.Length);stream2.FlushFinalBlock();StringBuilderbuilder=newStringBuilder();foreach(bytenuminstream.ToArray()){builder.AppendFormat("{0:X2}",num);}returnbuilder.ToString();}C#代码是我写的,大神帮忙看看,哪里有不对的

解决方案

本帖最后由 liujun198773 于 2015-05-08 14:46:58 编辑

时间: 2024-08-22 15:24:45

c# des加密和javad des加密不一致的相关文章

求JAVAdes加密解密和DES算法工具加密解密结果一样的

问题描述 求JAVAdes加密解密和DES算法工具加密解密结果一样的 如图,在网上找了很多方法,不是结果不一样就是解出来的是乱码 解决方案 加密解密 你可以试试上面这个 解决方案二: 1.我想网上大多数的DES算法做出来的都是正确的,也就是说给它适当的数据,出来的结果是一样的. 2.DES的明码.秘钥.密码都是以8个字节的倍数为单位的,其中秘钥的部分位是无效的(算法细节就不详细展开了),首先要了解8字节的倍数这一点. 3.在你给出的工具上,虽然没有说,但是它在明码和秘钥两个txt框中明显要的是8

des加密-DES加密问题,DES加密是8位输出的,为什么网上下工具都不是8位输出,在线DES也不是8位输出

问题描述 DES加密问题,DES加密是8位输出的,为什么网上下工具都不是8位输出,在线DES也不是8位输出 DES加密问题,DES加密是8位输出的,为什么网上下工具都不是8位输出,在线DES也不是8位输出 解决方案 谁告诉你"DES加密是8位输出的".加密块的大小可以是任意的. 这里找到一个8bithttp://blog.csdn.net/linfeng999/article/details/29592591 你可以参考下.而且要注意密钥

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

原文:各种加密解密函数(URL加密解密.sha1加密解密.des加密解密) 普通hash函数如md5.sha1.base64等都是不可逆函数.虽然我们利用php可以利用这些函数写出可逆函数来.但是跨语言时这类可逆函数非常难搞定.所以这时尽量使用AES DES RC4 Rabbit TripleDes这些方法. 包含超时的加密解密函数 1 /** 2 * 加密 3 * @param string $string 要加密或解密的字符串 4 * @param string $operation 加密

C# 加密解密(DES,3DES,MD5,Base64) 类

原文:C# 加密解密(DES,3DES,MD5,Base64) 类 保存! public sealed class EncryptUtils { #region Base64加密解密 /// <summary> /// Base64加密 /// </summary> /// <param name="input">需要加密的字符串</param> /// <returns></returns> public sta

java算法-C# des算法转java des 结果不一致

问题描述 C# des算法转java des 结果不一致 C# 其中 provider.Mode加密为CBC provider.Padding为PKCS7 string data="-1"; byte[] rgbKey = {69, 70, 67, 49, 56, 49, 69, 70}; byte[] rgbIV = {54, 57, 51, 69, 52, 48, 55, 70}; MemoryStream ms = new MemoryStream(); CryptoStream

java sha1加密 和 python sha1 加密结果不一致

问题描述 java sha1加密 和 python sha1 加密结果不一致 java代码 MessageDigest messageDigest = MessageDigest.getInstance(algorithm); messageDigest.update(value.getBytes()); return bytesToHexString(messageDigest.digest()); python 代码 md = hashlib.sha1() md.update(value.e

ASP.NET加密技术的应用(加密类代码参考)

asp.net|参考|加密  /**//**********************Created by Chen************************** *如果你觉得本人的文章好,要引用请尊重著作人的劳动果实,说明 *出处以及原创作者,Thank you!!!   email:aishen944-sohu.com *******************************************************************/ using System;usi

JAVA加密解密之对称加密

写的一个JAVA对称加密的工具类,支持DES.DESede.AES.Blowfish.RC2.RC4的加密解密. DES全称为Data Encryption Standard,即数据加密标准,是一种使用密钥加密的块算法,1976年被美国联邦政府的国家标准局确定为联邦资料处理标准(FIPS),随后在国际上广泛流传开来. DESede是由DES对称加密算法改进后的一种对称加密算法.使用 168 位的密钥对资料进行三次加密的一种机制:它通常(但非始终)提供极其强大的安全性.如果三个 56 位的子元素都

Android md5加密与php md5加密一致详解

Android md5加密与php md5加密一致详解 在Android开发过程中加密密码常常采用md5加密方式,然而如果服务器端采用PHP开发(php采用md5加密很简单,直接md5($str)),很可能与Java的md5加密不一致.以下方法是md5加密与php一致的源码: import java.math.BigInteger; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException;