`
天空之城
  • 浏览: 408112 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java 解密加密

    博客分类:
  • Java
阅读更多
import java.io.FileInputStream;   
import java.io.FileNotFoundException;   
import java.io.FileOutputStream;   
import java.io.IOException;   
import java.io.ObjectInputStream;   
import java.io.ObjectOutputStream;   
import java.security.Key;   
import java.security.MessageDigest;   
  
import javax.crypto.Cipher;   
import javax.crypto.KeyGenerator;   
  
public class Demo {   
    public static void main(String args[]) {   
        String password = "administrator";   
        try {   
            Demo.PrivEncrypt(password,"t.obj");   
        } catch (Exception e) {   
            e.printStackTrace();   
        }   
    }   
  
    /**  
     *   
     * @param oldStr  
     *            要加密的串  
     * @param keyFile  
     *            私有key所在的文件路径  
     * @throws Exception  
     */  
    public static void PrivEncrypt(String oldStr,String keyFile) throws Exception {   
        System.out.println("原始:"+oldStr);   
        byte[] plainText = oldStr.getBytes("GBK");   
        Key key = getPriveKey(keyFile);   
        // 获得一个私鈅加密类Cipher,ECB是加密方式,PKCS5Padding是填充方法   
        Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");   
           
        cipher.init(Cipher.ENCRYPT_MODE, key);// 使用私鈅加密   
        byte[] cipherText = cipher.doFinal(plainText);   
        System.out.println("加密:"+new String(cipherText, "UTF8"));   
           
        cipher.init(Cipher.DECRYPT_MODE, key);// 使用私钥解密   
        byte[] newPlainText = cipher.doFinal(cipherText);   
        System.out.println("解密:"+new String(newPlainText, "UTF8"));   
    }   
  
    // 把Key 写到文件中:生成一个私有Key对象,保存在文件中   
    public static void setPriveKey(String file) {   
        FileOutputStream fos;   
        try {   
            fos = new FileOutputStream(file);   
            KeyGenerator keyGen = KeyGenerator.getInstance("DES");   
            keyGen.init(128);   
            Key key = keyGen.generateKey();// 生成私钥Key   
            ObjectOutputStream oos = new ObjectOutputStream(fos);   
            oos.writeObject(key);   
            oos.close();   
        } catch (Exception e1) {   
            e1.printStackTrace();   
        }   
    }   
    // 从文件中读Key:客户端可以根据管理员提供的私钥Key文件提取Key对象   
    public static Key getPriveKey(String file) throws Exception {   
        FileInputStream fis = new FileInputStream(file);   
        ObjectInputStream ois = new ObjectInputStream(fis);   
        Key key = (Key) ois.readObject();   
        return key;   
    }   
}   
/* 运行结果:  
 * 原始:administrator   
 * 加密:!Y????I?? ??R;?  
 * 解密:administrator  
 */  

 

分享到:
评论

相关推荐

    Java解密加密及压缩算法实例.rar

    本资源"Java解密加密及压缩算法实例.rar"提供了一系列的示例代码,旨在帮助开发者理解和应用各种加密和压缩算法。以下是这些算法的详细介绍: 1. **加密算法**: - **AES(高级加密标准)**:AES是一种对称加密...

    解决低版本java解密加密的【key长度异常】

    在Java编程中,加密和解密操作是常见的安全措施,用于保护数据的隐私和完整性。然而,有时在使用低版本的Java运行环境时,可能会遇到“key长度异常”的问题,这通常与Java加密的默认限制有关。本文将深入探讨这个...

    JAVA解密加密

    Java随机加密,同一字符串第一次与第N次加密结果不同。解密后还原为原同一字符串。

    JAVA数据加密解密的实例

    Java作为一种广泛使用的编程语言,提供了丰富的工具和库来实现数据的加密和解密。本实例将聚焦于JAVA数据加密解密的实践应用。 首先,让我们理解加密和解密的基本概念。加密是一种将明文(可读信息)转化为密文(不...

    JCT - java加密解密工具包.zip_Java加密_java 加密_jct java_加密 解密_加密工具

    Java加密解密工具包,通常用于保护敏感数据的安全,防止未经授权的访问或篡改。这个名为"JCT"的工具包提供了丰富的功能,使得开发者在Java应用中集成加密和解密操作变得更加简单。下面我们将详细探讨Java加密的相关...

    RSA加密解密 JS加密 JAVA解密 【完美版】

    经过本人修改,简化并完善了别人的代码,使其更加的容易理解和学习! 此为一个完整的项目,...功能:服务端随机生成密钥,JS用公钥加密,服务端用私钥解密。用到的JS加密文件是从官网下载的最新版,速度快,稳定性好!

    C#RSA加密与JAVA解密,实现相互通信

    "C# RSA加密与JAVA解密,实现相互通信"的主题聚焦于如何利用RSA公钥/私钥加密算法在C#和Java两个不同的编程环境中实现安全的数据交换。RSA是一种非对称加密算法,它使用一对密钥——公钥和私钥,公钥用于加密,私钥...

    java加密解密工具

    Java加密解密工具是开发过程中不可或缺的部分,尤其是在处理敏感数据时,确保数据的安全性至关重要。在Java中,我们可以使用各种库和内置API来实现加密和解密操作。本篇文章将深入探讨Java加密解密的核心概念、常用...

    javascript加密java解密

    JavaScript加密和Java解密是两种在软件开发中用于保护数据安全的技术。JavaScript通常用于前端,为用户提供了交互式体验,但因为代码可被浏览器直接查看,所以可能存在安全风险。为了保护敏感信息,开发者可能选择对...

    java加密解密zip压缩包

    在Java编程环境中,处理文件的压缩与解压缩是常见的任务,而涉及到安全性,加密和解密就显得尤为重要。本文将详细讲解如何使用Java实现ZIP压缩包的加密与解密。 首先,我们需要理解加密的基本概念。加密是将明文...

    java实现文件加密解密

    "java实现文件加密解密" Java 实现文件的加密与解密是指利用 Java 语言将资源文件(包括图片、动画等类型)进行简单的加密和解密。这种策略的原因和好处是将准备好的资源存储在云上,使用时通过网络进行读取即可,...

    java加密和解密的方法

    java加密和解密的方法,利用指定的密钥,可逆的。密钥必须16位。

    javaRSA加密C++RSA解密

    JAVA也是通过包来实现加密和解密的,那么我的C++是通过OPENSSL的库来实现的。 重点来到了:RSA使用过程 1、C++随机生成一对公钥和私钥 2、JAVA用公钥给明文打包形成密文 3、C++用私钥解密密文

    flutter加密java解密

    在Flutter和Java混合开发的场景中,"flutter加密java解密"的主题涉及到如何在Flutter客户端与Java后台之间进行安全的数据交互,确保信息在传输过程中不被窃取或篡改。这里我们将详细讨论如何实现这一目标,并保证App...

    java 实现加密解密

    在Java编程语言中,实现加密和解密是安全领域中的重要任务,主要用于保护数据的隐私性和完整性。本文将深入探讨如何使用Java进行加密和解密操作,主要关注以下几个方面: 1. **加密算法理解** - **对称加密**:如...

    Java实现的RSA加密解密算法示例

    Java实现的RSA加密解密算法示例 本文主要介绍了Java实现的RSA加密解密算法,结合实例形式分析了Java RSA加密解密算法的相关实现技巧。 知识点1:RSA加密解密算法简介 RSA加密解密算法是一种非对称加密算法,由Ron...

    java和javascript之间的DES加密解密

    Java和JavaScript之间的DES加密解密是信息安全领域中的一个重要话题,主要涉及到数据的保护和通信的安全。DES(Data Encryption Standard)是一种古老的对称加密算法,尽管它在安全性上已不被视为最佳选择,但在某些...

    排列码java实现,密码加密解密

    在Java中实现排列码,我们可以利用编程语言的强大功能来设计相应的加密和解密算法。 首先,我们需要理解排列码的原理。排列码通常基于一个固定的编码规则,例如,可以使用数字或字符的某种特定顺序对数据进行编码。...

    des加密算法(js+java)js加密 java解密

    des加密算法(js+java)加密与解密结果相同 包含三个文件 : des.js des.html ,用于实现前端脚本的加密与解密 des.java 用于后台的加密解密操作; 项目中正好用到,已经过验证,两个加密解密结果相同,分享给...

    java_加密解密简单实现

    在Java中,可以使用`java.security.KeyPairGenerator`类来生成公钥和私钥对,并使用`javax.crypto.Cipher`类来实现加密和解密过程。 ```java KeyPairGenerator keyGen = KeyPairGenerator.getInstance("RSA"); ...

Global site tag (gtag.js) - Google Analytics