`
shirlly
  • 浏览: 1647940 次
  • 性别: Icon_minigender_2
  • 来自: 福州
社区版块
存档分类
最新评论

c#加密,java解密(3DES加密)

    博客分类:
  • .NET
阅读更多
c#代码
using System;
using System.Security;
using System.Security.Cryptography;
using System.IO;
using System.Text;
using System.Threading;namespace WebApplication2
{
 /// <summary>
 /// DES3 的摘要说明。
 /// </summary>
 public class DES3
 {
  public DES3()
  {
  } 
   //密钥
   private const string sKey = "A3F2569DESJEIWBCJOTY45DYQWF68H1Y";   //矢量,矢量可以为空
   private const string sIV = "qcDY6X+aPLw=";   //构造一个对称算法
   private SymmetricAlgorithm mCSP = new TripleDESCryptoServiceProvider();
   #region public string EncryptString(string Value)   /// 加密字符串
   /// 输入的字符串
   /// 加密后的字符串
   public string EncryptString(string Value)   {
    ICryptoTransform ct;
    MemoryStream ms;
    CryptoStream cs;
    byte[] byt;
    mCSP.Key = Convert.FromBase64String(sKey);
    mCSP.IV = Convert.FromBase64String(sIV);    //指定加密的运算模式
    mCSP.Mode = System.Security.Cryptography.CipherMode.ECB;    //获取或设置加密算法的填充模式
    mCSP.Padding = System.Security.Cryptography.PaddingMode.PKCS7;
    ct = mCSP.CreateEncryptor(mCSP.Key, mCSP.IV);
    byt = Encoding.UTF8.GetBytes(Value);
    ms = new MemoryStream();
    cs = new CryptoStream(ms, ct, CryptoStreamMode.Write);
    cs.Write(byt, 0, byt.Length);
    cs.FlushFinalBlock();
    cs.Close();
    return Convert.ToBase64String(ms.ToArray());
   }   #endregion
  } }

  java代码
package des;import javax.crypto.Cipher;
import javax.crypto.NoSuchPaddingException;
import javax.crypto.SecretKey;
import java.security.NoSuchAlgorithmException;
import sun.misc.*;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import javax.crypto.BadPaddingException;
import javax.crypto.IllegalBlockSizeException;
import javax.crypto.spec.SecretKeySpec;
import java.security.*;
import javax.crypto.SecretKeyFactory;
import java.security.spec.*;
import javax.crypto.spec.DESedeKeySpec;
/**
解密
 */
public class DES {
    private static String Algorithm = "DESede";//加密算法的名称
    private static Cipher c;//密码器
    private static byte[] cipherByte;
    private static SecretKey deskey;//密钥
    private static String keyString = "A3F2569DESJEIWBCJOTY45DYQWF68H1Y";//获得密钥的参数     //对base64编码的string解码成byte数组
     public byte[] deBase64(String parm) throws IOException {
        BASE64Decoder dec=new BASE64Decoder();
        byte[] dnParm = dec.decodeBuffer(parm);
        System.out.println(dnParm.length);
        System.out.println(dnParm);
        return dnParm;
     }
    //把密钥参数转为byte数组
     public byte[] dBase64(String parm) throws IOException {
        BASE64Decoder dec=new BASE64Decoder();
        byte[] dnParm = dec.decodeBuffer(parm);
        return dnParm;
     }    /**
     * 对 Byte 数组进行解密
     * @param buff 要解密的数据
     * @return 返回加密后的 String
     */
     public static String createDecryptor(byte[] buff) throws
      NoSuchPaddingException, NoSuchAlgorithmException,
      UnsupportedEncodingException {
        try {
           c.init(Cipher.DECRYPT_MODE, deskey);//初始化密码器,用密钥deskey,进入解密模式
           cipherByte = c.doFinal(buff);
        }
        catch(java.security.InvalidKeyException ex){
            ex.printStackTrace();
        }
        catch(javax.crypto.BadPaddingException ex){
            ex.printStackTrace();
        }
        catch(javax.crypto.IllegalBlockSizeException ex){
            ex.printStackTrace();
        }
        return (new String(cipherByte,"UTF-8"));
     }
     public void getKey(String key) throws IOException, InvalidKeyException,
      InvalidKeySpecException {
      byte[] dKey = dBase64(key);
        try {          deskey=new javax.crypto.spec.SecretKeySpec(dKey,Algorithm);
          c = Cipher.getInstance(Algorithm);
        }
        catch (NoSuchPaddingException ex) {
        }
        catch (NoSuchAlgorithmException ex) {
        }
     }
     public static void main(String args[]) throws IOException,
      NoSuchAlgorithmException, NoSuchPaddingException, InvalidKeySpecException,
      InvalidKeyException, IOException {
       DES des = new DES();
       des.getKey(keyString);
       byte[] dBy = des.deBase64("1ZVasdJJco1qccDnnfQfb8QeaARxhkR6");
       String dStr = des.createDecryptor(dBy);
       System.out.println("解:"+dStr);
     }
}


这个可以加解密,不限制加密字符长度
分享到:
评论
1 楼 hezhangbo 2010-03-09  
有没有C#解密,Java加密的代码 3DES

相关推荐

    C# 加密 java解密 (DES)

    源码 博文链接:https://callan.iteye.com/blog/227784

    C#与JAVA平台通用DES

    C#与JAVA通用DES: 1、C#平台上的加密与解密 ...3、C#平台上的加密,能在JAVA平台上解密 4、JAVA平台上的加密,能在C#平台上解密 这个工具类,是基于平台的,不调用任何第三方软件,已经运用在实际项目中。

    C#和Java实现互通的RSA&DES加解密算法

    本话题主要关注如何在C#和Java之间通过RSA和DES加密算法实现数据的安全互通。RSA是一种非对称加密算法,适用于小量数据加密,如密钥交换;而DES是对称加密算法,适合大量数据的快速加密,但安全性相对较低。 首先,...

    java和C#通用des3加解密

    标题中的“java和C#通用des3加解密”指的是在Java和C#这两种不同的编程语言中实现DES(Data Encryption Standard)的加强版——3DES(Triple DES)加解密算法。3DES是一种广泛使用的对称加密算法,通过三次应用DES的...

    c#加密解密(des 3des aes)

    本文将深入探讨C#编程语言中用于数据加密解密的三种主要算法:DES、3DES以及AES,并结合描述中的信息,为您提供关于这些算法的基础知识和如何在C#环境中实现它们。 **DES(Data Encryption Standard)** DES是一种...

    DES加密DEMO(C#与JAVA)

    3. **JAVA实现DES加密解密** - **javax.crypto命名包**:JAVA中使用`javax.crypto.Cipher`类配合`DESKeySpec`和`SecretKeyFactory`实现DES加密解密。首先需要创建`DESKeySpec`对象,然后通过`SecretKeyFactory`生成...

    javascript前端DES加密,VB.NET、C#后端服务器解密

    标题中的"javascript前端DES加密,VB.NET、C#后端服务器解密"涉及到的是一个常见的安全实践,即在客户端(JavaScript)对敏感数据(如账号密码)进行加密,然后在服务器端(VB.NET或C#)进行解密,以保护数据在传输...

    C#加密用JAVA解密

    在给定的压缩包文件"C#加密JAVA解密"中,可能包含了C#和Java的完整示例代码,用于演示如何在两个不同的平台上实现3DES加密和解密。这些示例可以作为学习和参考的起点,帮助开发者理解跨平台加密解密的关键步骤和注意...

    DES加密方法JAVA和C#交叉加密解密代码

    DES加密方法JAVA和C#交叉加密解密代码

    C#加密解密,包括DES、MD5、SHA256

    根据给定文件的信息,我们可以总结出关于C#中几种常用加密...通过以上代码示例,我们了解了如何在C#中实现DES加密解密、MD5和SHA256散列函数。这些技术在实际开发中非常有用,尤其是在保护用户数据的安全性和隐私方面。

    C#DES标准ECB加密解密示例源码

    C#DES标准ECB加密解密示例源码,根据标准的C改的源码,与网上所搜索到的完全不一样,可以支持中文为密钥的加密,也可以支持为中文字符串的加密,如,密钥为:替天行道,明文为:来自替天行道的C#DES标准ECB加密解密...

    C# DES加密解密

    3. **创建DES加密器** 使用`DES.Create()`方法创建一个DES加密器对象。由于默认的DES实现不支持56位密钥,而是使用64位密钥,其中第8位为奇偶校验位,因此通常需要设置`DES.Create()`的参数以忽略奇偶校验位。 4. ...

    C#加密解密DeEncryptHelper.zip

    DES加密/解密类。 加密 加密数据 解密 解密数据 得到随机安全码(哈希加密)。 得到随机哈希加密字符串 哈希加密一个字符串 RSA加密解密及RSA签名和验证 RSA 的密钥产生 产生私钥 和公钥 RSA 方式加密 RSA的解密...

    C#_加密解密类_DES_3DES_MD5

    ### C#中的加密解密类:DES、3DES与MD5 #### 一、概述 在C#中,实现数据加密解密的功能是确保信息安全的关键技术之一。本篇将详细介绍如何利用C#来实现DES(Data Encryption Standard)、3DES(Triple Data ...

    C# 密码加密与解密 (DES)

    首先,要使用DES加密,你需要创建一个`DESCryptoServiceProvider`对象,这是.NET框架提供的DES实现。然后设置密钥和初始化向量(IV),这两个都是8字节的二进制数组。密钥决定了加密和解密的过程,而IV是随机生成的...

    c#3DES双倍长加密解密

    c#的3DES加密解密强制要求不能使用简单的密钥,这里按照3DES双倍长的算法原理,实现双倍长的加密解密

    java c# des加密解密

    ### Java与C#中的DES加密解密技术 #### 一、概述 在现代软件开发中,数据的安全性至关重要。为了确保数据在传输过程中的安全,加密技术被广泛应用。其中,数据加密标准(Data Encryption Standard,简称DES)是一...

    C#des对文件进行加密解密

    总的来说,使用C#和DES进行文件加密解密是一个涉及多个步骤的过程,包括创建加密对象、设置密钥和IV、创建流对象、创建加密或解密流、读写文件以及关闭流。在现代安全需求下,虽然DES可能不是最安全的选择,但理解其...

    DES.zip_C#加密解密_DES字符串_Des 加密 解密_des_加密解密

    DES加密解密算法。通过密钥对对字符串进行加密解密操作,64位加密

Global site tag (gtag.js) - Google Analytics