`
roomy
  • 浏览: 52525 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JAVA常用加密算法应用

    博客分类:
  • J2SE
阅读更多

一.MD5加密,常用于加密用户名密码,当用户验证时:

protected byte[] encrypt(byte[] obj) {                         
    try {                                                      
        MessageDigest md5 = MessageDigest.getInstance("MD5");
        md5.update(obj);                                       
        return md5.digest();                                   
    } catch (NoSuchAlgorithmException e) {                     
        e.printStackTrace();                                   
    }                                                          
}               

 二.SHA加密,与MD5相似的用法,只是两者的算法不同:

protected byte[] encrypt(byte[] obj) {                         
    try {                                                     
        MessageDigest sha = MessageDigest.getInstance("SHA");
            sha.update(obj);                                   
        return sha.digest();                                   
    } catch (NoSuchAlgorithmException e) {                    
        e.printStackTrace();                                   
    }                                                          
}           
import java.security.KeyPair;                                              
import java.security.KeyPairGenerator;                                     
import java.security.interfaces.RSAPrivateKey;                             
import java.security.interfaces.RSAPublicKey;                              
                                                                           
import javax.crypto.Cipher;                                                
                                                                           
/**                                                                        
* <b>RSAEncrypt</b>                                                       
* <p>                                                                     
* @author maqujun                                                         
* @see                                                                    
*/                                                                        
public class RSAEncrypt {                                                  
                                                                           
   /**                                                                    
     * Main method for RSAEncrypt.                                         
     * @param args                                                         
     */                                                                    
    public static void main(String[] args) {                               
        try {                                                             
            RSAEncrypt encrypt = new RSAEncrypt();                         
                                                                           
            String encryptText = "encryptText";                            
            KeyPairGenerator keyPairGen = KeyPairGenerator.getInstance("RSA");
            keyPairGen.initialize(1024);                                   
            KeyPair keyPair = keyPairGen.generateKeyPair();                
            // Generate keys                                               
            RSAPrivateKey privateKey = (RSAPrivateKey) keyPair.getPrivate();
            RSAPublicKey publicKey = (RSAPublicKey) keyPair.getPublic();   
                                                                           
            byte[] e = encrypt.encrypt(publicKey, encryptText.getBytes());
            byte[] de = encrypt.decrypt(privateKey,e);                     
            System.out.println(encrypt.bytesToString(e));                  
            System.out.println(encrypt.bytesToString(de));                 
        } catch (Exception e) {                                           
            e.printStackTrace();                                           
        }                                                                  
    }                                                                      
                                                                           
    /**                                                                    
     * Change byte array to String.                                        
     * @return byte[]                                                      
     */                                                                    
    protected String bytesToString(byte[] encrytpByte) {                   
        String result = "";                                                
        for (Byte bytes : encrytpByte) {                                  
            result += (char) bytes.intValue();                             
        }                                                                  
        return result;                                                     
    }                                                                      
                                                                           
    /**                                                                    
     * Encrypt String.                                                     
     * @return byte[]                                                      
     */                                                                    
    protected byte[] encrypt(RSAPublicKey publicKey, byte[] obj) {        
        if (publicKey != null) {                                           
            try {                                                         
                Cipher cipher = Cipher.getInstance("RSA");                 
                cipher.init(Cipher.ENCRYPT_MODE, publicKey);               
                return cipher.doFinal(obj);                                
            } catch (Exception e) {                                       
                e.printStackTrace();                                       
            }                                                              
        }                                                                  
        return null;                                                       
    }                                                                      
                                                                           
    /**                                                                    
     * Basic decrypt method                                                
     * @return byte[]                                                      
     */                                                                    
    protected byte[] decrypt(RSAPrivateKey privateKey, byte[] obj) {      
        if (privateKey != null) {                                         
                try {                                                     
                    Cipher cipher = Cipher.getInstance("RSA");             
                    cipher.init(Cipher.DECRYPT_MODE, privateKey);          
                    return cipher.doFinal(obj);                            
                } catch (Exception e) {                                    
                    e.printStackTrace();                                   
                }                                                          
            }                                                              
                                                                           
        return null;                                                       
    }                                                                      
}                                                                   

 

 

 

分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    Java中常用的加密算法应用

    本文将详细介绍在Java中常见的三种加密算法:MD5、SHA以及RSA,并探讨它们的应用场景和实现方式。 1. MD5(Message-Digest Algorithm 5)加密: MD5是一种广泛使用的哈希函数,它将任意长度的输入转化为固定长度的...

    JAVA的加密算法及应用

    本文旨在探讨Java中的加密算法及其应用场景,帮助读者更好地理解如何在Java环境中实现数据加密。 #### 二、加密算法种类 加密算法按其工作方式可以分为对称加密算法和非对称加密算法两大类。对称加密算法使用同一...

    java常用几种加密算法

    ### Java常用几种加密算法 在Java开发中,数据的...以上就是关于Java中常用的几种加密算法——MD5、SHA及RSA的基本介绍和应用示例。通过理解这些加密算法的工作原理和应用场景,可以帮助开发者更好地保护数据安全。

    Java中常用的加密算法MD5,SHA,RSA

    Java 中常用的加密算法有多种,包括 MD5、SHA 和 RSA 等,这些算法在不同的应用场景中发挥着重要作用。下面将对这些算法进行详细的介绍和分析。 一、MD5 加密算法 MD5(Message-Digest Algorithm 5)是一种常用的...

    java加密算法实现

    本文将详细介绍Java中常见的加密算法的实现,以及如何在JDK 1.8环境下进行操作。 1. **对称加密算法** 对称加密是最基础的加密方式,使用相同的密钥进行加密和解密。Java中提供了`javax.crypto`包来支持此类算法,...

    java 加密算法及原理.jar

    在Java中,我们可以使用多种加密算法来实现数据的安全传输和存储。以下将详细介绍几种常见的Java加密算法及其工作原理。 1. **对称加密算法** 对称加密算法使用相同的密钥进行加密和解密,速度快,效率高,适合...

    常用加密算法的Java实现总结(二)——对称加密算法DES、3DES和AES.pdf

    2. 在Java中实现对称加密算法,需要掌握如何使用Java加密扩展(Java Cryptography Extension, JCE),这是一套加密算法API,可以方便地在Java程序中集成加密功能。 对DES算法而言,它是一个对称密钥的块加密算法,...

    Java实现的对称加密算法AES定义与用法详解

    "Java实现的对称加密算法AES定义与用法详解" 对称加密算法AES是当前使用最多的加密算法之一,其主要特点是高级的、安全的、快速的和灵活的。下面我们将详细介绍Java实现的对称加密算法AES的定义、特点、用法及使用...

    java加密算法及常用知识学习杂记

    在Java中,有多种加密算法可供选择,如AES、DES和RSA,每种都有其特定的应用场景和优势。下面将详细介绍这些算法以及相关的学习要点。 1. **AES(Advanced Encryption Standard)**:高级加密标准,是一种对称加密...

    Java AES DES加密算法的坑

    总结来说,理解和正确使用Java中的AES和DES加密算法,需要考虑密钥管理、初始化向量、填充模式、编码以及错误处理等多个方面,同时要关注加密过程中的安全风险和潜在陷阱。在实践中,结合合适的加密库和最佳实践,...

    Java中常用的加密算法RSA

    这个压缩包文件"Java中常用的加密算法RSA.doc"可能包含更详细的内容,如具体的代码示例、原理解释或应用场景分析。对于学习和理解Java中的RSA加密算法,阅读这份文档会是一个很好的资源。无论你是初学者还是有经验的...

    JAVA上加密算法的实现用例

    `JAVA上加密算法的实现用例`这个主题涵盖了Java中加密算法的基本概念、常用的加密库以及具体的代码示例。 首先,Java提供了一个内置的加密库,名为Java Cryptography Extension (JCE),它允许开发者使用各种加密...

    java加密算法源码

    在Java中,使用这些加密算法通常需要以下步骤: 1. 导入相关包,如`javax.crypto.*`,`java.security.*`。 2. 生成密钥(对于非对称加密如RSA)或直接使用预定义的密钥(对称加密如AES、DES)。 3. 初始化`Cipher`...

    Java中常用的加密算法及其实现原理详解-保护信息的铠甲,静默守护你的隐私

    本文将详细介绍Java中常见的四种加密算法:对称加密算法、非对称加密算法、散列算法以及数字签名算法,并探讨它们的实现原理与应用场景。 1. 对称加密算法 对称加密算法使用同一密钥进行加密和解密,其优点在于速度...

    JAVA加密算法

    在JAVA中实现Diffie-Hellman密钥交换协议需要使用到`java.security.KeyAgreement`类。具体步骤如下: 1. **生成密钥材料**:使用`KeyPairGenerator`生成密钥对。 2. **初始化密钥交换对象**:使用`KeyAgreement`...

    Java 常用数值算法集

    Java中常用的根查找算法有二分法、牛顿-拉弗森方法和Bisection法。Apache Commons Math提供了这些方法的实现。 九、排序与搜索算法 数值算法也涵盖了排序和搜索算法,如快速排序、归并排序、二分查找等。这些算法...

    常用java加密解密算法

    在Java中,上述提到的加密算法都可以通过java.security包以及javax.crypto包中的相关类来实现。开发者在使用这些类时,需要考虑算法的适用场景以及安全性因素,合理选择对称或非对称加密算法,以及选择哪种加密强度...

    常用MD5加密算法和3-DES加密算法java实现

    ### 常用MD5加密算法和3-DES加密算法Java实现 在现代软件开发过程中,数据的安全性变得越来越重要。对于数据传输和存储过程中的安全性保障,加密技术发挥着至关重要的作用。本文将详细介绍如何在Java环境中实现两种...

    常用加密算法概述.zip

    3. AES:AES是目前最常用的对称加密算法,支持128、192和256位的密钥,安全性较高且执行效率优于3DES。 4. Blowfish:Blowfish是另一种可变密钥长度的对称加密算法,密钥长度可达448位,安全性和效率都较为理想。 ...

    RSA加密算法实现以及C#与java互通加解密

    ### RSA加密算法实现以及C#与Java互通加解密 #### 一、RSA算法简介 RSA算法是一种非对称加密算法,由Ron Rivest、Adi Shamir 和 Leonard Adleman 在1977年提出,并以其三人的名字首字母命名。RSA算法的安全性基于...

Global site tag (gtag.js) - Google Analytics