`
yongpeng
  • 浏览: 29351 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

加密 

阅读更多

import javax.crypto.Cipher;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;

import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;

public class APDes3 {
   
    /**
     * 加密String明文输入,经过BASE64编码String密文输出
     *
     * @param text,keystr,ivstr
     * @return
     */
    public static String encrypt(String text, String keystr,String ivstr) throws Exception
    {
        Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
        byte[] keyBytes= new byte[16];
        byte[] ivBytes = new byte[16];
       
        byte[] b= keystr.getBytes("UTF-8");
        byte[] v = ivstr.getBytes("UTF-8");
       
        int len= b.length;
        int len2 = v.length;
       
        if (len > keyBytes.length) len = keyBytes.length;
        if (len2> ivBytes.length) len2 = ivBytes.length;
       
        System.arraycopy(b, 0, keyBytes, 0, len);
        System.arraycopy(v,0,ivBytes,0,len2);
       
        SecretKeySpec keySpec = new SecretKeySpec(keyBytes, "AES");
        IvParameterSpec ivSpec = new IvParameterSpec(ivBytes);
        cipher.init(Cipher.ENCRYPT_MODE,keySpec,ivSpec);
        BASE64Encoder decoder = new BASE64Encoder();
        byte [] results = cipher.doFinal(text.getBytes("UTF8"));
        return decoder.encode(results);
    }
   
    /**
     * 解密 以BASE64形式String密文输入,String明文输出
     *
     * @param text,keystr,ivstr
     * @return
     */
    public static String decrypt(String text, String keystr,String ivstr) throws Exception
    {
        Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
        byte[] keyBytes= new byte[16];
        byte[] ivBytes = new byte[16];
       
        byte[] b= keystr.getBytes("UTF-8");
        byte[] v = ivstr.getBytes("UTF-8");
       
        int len= b.length;
        int len2 = v.length;
       
        if (len > keyBytes.length) len = keyBytes.length;
        if (len2> ivBytes.length) len2 = ivBytes.length;
       
        System.arraycopy(b, 0, keyBytes, 0, len);
        System.arraycopy(v,0,ivBytes,0,len2);
       
        SecretKeySpec keySpec = new SecretKeySpec(keyBytes, "AES");
        IvParameterSpec ivSpec = new IvParameterSpec(ivBytes);
        cipher.init(Cipher.DECRYPT_MODE,keySpec,ivSpec);
        BASE64Decoder decoder = new BASE64Decoder();
        byte [] results = cipher.doFinal(decoder.decodeBuffer(text));
        return new String(results,"UTF-8");
    }
    /**
     * @param args
     * @throws Exception
     */
    public static void main(String[] args) throws Exception {
        // TODO Auto-generated method stub
        String text = "Account =aqtest201,Password =test4321,NewPassword =test4321;";
        String key = "ITMSYNlCKMTRUDFJ";
        String ivStr = "12345678";
        String strenc = APDes3.encrypt(text,key,ivStr);//加密
        System.out.println("strenc is :" + strenc);
        String strDes = APDes3.decrypt(strenc,key,ivStr);//解密
        System.out.println("strDes is :" + strDes);
        strenc = java.net.URLEncoder.encode(strenc);
        System.out.println("URLEncoder.encode(data) :" +strenc);
        strenc = java.net.URLDecoder.decode(strenc);
        System.out.println("URLDecoder.decoder(data) :" +strenc);

    }

}

分享到:
评论

相关推荐

    Android加密之全盘加密详解

    其中,加密又分全盘加密(Android 4.4 引入)和文件级加密(Android 7.0 引入),本文将论述加密中的全盘加密的基本知识。全盘加密在 Android 4.4 中引入,在 Android 5.0 中做了比较大的更新。 本文部分片段摘自 ...

    企业级程序苏林加密系统 php加密的程序源码 sg11加密 xend加密 goto加密等

    苏林加密系统是一款专门为php加密的程序,支持sg11加密、xend加密、goto加密、Leave加密、enphp加密、NoName加密 可以发展用户,可以设置某加密价格,支持API接口加密,对接官方支付、码支付和易支付。 更新记录:...

    非对称加密和对称加密混合应用

    6.用对方的公钥对称密钥进行加密(加密密钥) 7.将密文(5)和加密密钥(6)一起发给对方 接收方: 1.用自己的私钥对加密密钥进行解密,得到对称密钥--也只有自己才能解密。 2.用对称密钥对密文进行解密,得到...

    C#加密解密DeEncryptHelper.zip

    单向加密 SHA1 单向加密 DES 双向,可解密 加密字符串 加密字符串 密钥为系统默认 加密文件 解密字符串 解密文件 128位MD5算法加密字符串 128位MD5算法加密Byte数组 32位MD5加密 Base64加密 Base64解密 DES加密/解密...

    基于Java实现的同态加密算法的实现

    同态加密是一种高级的加密技术,它允许对加密数据进行计算,而无需先解密。在同态加密下,操作的结果仍然是加密的,但与原始未加密数据进行相同的操作会得到相同的结果。这一特性使得同态加密在数据隐私保护、云计算...

    POST提交数据加密

    在这个场景中,我们关注的是如何加密POST请求中的数据,以及如何通过工具如HttpWatch来查看这些加密数据。下面我们将深入探讨POST提交数据加密的原理、方法以及HttpWatch工具的使用。 首先,POST方法是HTTP协议中...

    代理重加密代码

    代理重加密(Proxy Re-Encryption)是一种在公钥加密系统中的高级加密技术,它允许一个可信的第三方(代理)在不获取原始密文内容的情况下,将一个用户加密的信息重加密成另一个用户能解密的形式。这项技术在云计算...

    Codesys平台之功能块加密

    《Codesys平台功能块加密详解》 Codesys作为一款强大的工业自动化编程软件,提供了丰富的功能以确保项目的安全性,特别是对于程序和工艺块的加密管理。本文将深入探讨Codesys平台的功能块加密机制,包括设备加密、...

    VB6加密解密算法,支持文件加密解密

    在VB6.0环境下开发的这个程序主要关注的是数据安全领域,特别是文件的加密与解密功能。VB(Visual Basic)是一种由微软公司推出的事件驱动编程语言,它以其易用性和丰富的控件库深受程序员喜爱。在这个特定的项目中...

    最全的android图片加密

    本文将深入探讨如何实现Android图片的加密和解密,主要关注国际标准的AES(Advanced Encryption Standard)加密和混入字节加密这两种方法。 AES加密是目前广泛使用的对称加密算法,其安全性高,效率优良。在Android...

    JS前台加密,java后台解密实现

    在网络安全领域,数据加密是保障信息安全的重要手段。在这个场景中,我们关注的是“JS前台加密,Java后台解密实现”,这通常涉及到用户敏感信息如用户名和密码的安全传输。以下是关于这个话题的详细解释: 首先,**...

    Java文本文件加密与解密

    本次使用JAVA语言,采用3DES加密算法进行对文本文件的加密,通过二进制和十六进制的转换来实现,产生加密文件,再对加密文件进行解密。 关键词:DES加密算法、加密、解密。摘要 随着现代网络技术的飞速发展,人们...

    光盘加密大师 6.0

    《光盘加密大师 6.0:保护你的数据安全与隐私》 在信息化时代,数据安全和隐私保护显得尤为重要,特别是在存储介质广泛使用的背景下。光盘作为一种常见的存储工具,其内容的安全性同样不可忽视。"光盘加密大师 6.0...

    易飞用户加密解密

    《易飞用户加密解密详解》 在信息技术领域,数据安全是至关重要的议题,而用户加密解密技术正是保障信息安全的重要手段。本文将围绕“易飞用户加密解密”这一主题,深入探讨其原理、应用及操作流程,帮助读者更好地...

    plist文件加密方法

    在iOS开发中,为了保护应用程序的数据安全,对plist文件进行加密是常见的做法。Plist(Property List)文件是苹果系统中用于存储配置信息或轻量级数据的文件,通常以XML或二进制格式存在。当这些文件包含敏感信息时...

    3DES加密解密工具

    标题中的“3DES加密解密工具”指的是一个用于执行三重数据加密标准(3DES,Triple DES)的软件工具,这种工具通常用于保护敏感数据的安全,确保信息在传输过程中的机密性。3DES是DES(Data Encryption Standard,...

    苏林加密系统_php加密程序源码_企业级程序.zip

    苏林加密系统是一款专门为php加密的程序,支持sg11加密、xend加密、goto加密、Leave加密、enphp加密、NoName加密 可以发展用户,可以设置某加密价格,支持API接口加密,对接官方支付、码支付和易支付。 更新记录:...

    App.config加密解密 Xml文档加密解密

    加密过程涉及将配置节转换为ProtectedData类型,利用数据保护API(DPAPI)或RSA加密算法。解密则是在运行时自动完成的,只要应用程序具有正确的权限。 XML文档的加密同样重要,特别是当它们包含敏感信息时。XML加密...

    Springboot项目报文加密(采用AES、RSA动态加密策略)

    Springboot项目报文加密(采用AES、RSA动态加密策略) Springboot项目报文加密(采用AES、RSA动态加密策略) Springboot项目报文加密(采用AES、RSA动态加密策略) Springboot项目报文加密(采用AES、RSA动态加密...

    加密算法,对一个文件利用异或算法加密,加密结果存放在另一个文件中。

    在IT领域,加密技术是确保数据安全的重要手段。在这个场景中,我们讨论的是一个使用C++语言实现的异或(XOR)加密算法,用于对文件进行加密。异或加密是一种简单但有效的加密方法,尤其适用于初级加密需求或者理解加密...

Global site tag (gtag.js) - Google Analytics