当前位置:编程学习 > JAVA >>

java安全3

Java代码 
package com.ngsn.security; 
 
 
import javax.crypto.Cipher; 
import javax.crypto.SecretKey; 
import javax.crypto.SecretKeyFactory; 
import javax.crypto.spec.PBEKeySpec; 
import javax.crypto.spec.PBEParameterSpec; 
 
/**
 * 对称加密(加密解密的密钥一样)
 * 根据自己的密码来生成一个自己的私钥
 * @author John.Yao
 *
 */ 
public class SecretKeyTest2 { 
     
    public static void main(String[] args) throws Exception{ 
        //Cipher  此类为加密和解密提供密码功能 
        Cipher cipher = Cipher.getInstance("PBEWithMD5AndDES"); 
        //根据AES的加密方法生成一个密钥 
        //SecretKey key = KeyGenerator.getInstance("AES").generateKey(); 
        //根据密钥工厂生成密钥 
        //类PBEKeySpec,可以将密码视为某种原始密钥内容,由此加密机制使用其导出一个密钥 
        SecretKey key = SecretKeyFactory.getInstance("PBEWithMD5AndDES").generateSecret(new PBEKeySpec("1234567".toCharArray())); 
        //此类指定随同以密码为基础的加密法 (PBE) 使用的参数集合 
        PBEParameterSpec param = new PBEParameterSpec(new byte[]{1,2,3,4,5,6,7,8},1000); 
        //初始化 
        //Cipher.ENCRYPT_MODE 为加密模式 
        //key 为密钥 
        cipher.init(Cipher.ENCRYPT_MODE,key,param); 
        //对byte[] 进行加密,返回一个加密后的byte[] 
        byte[] result = cipher.doFinal("abcd".getBytes()); 
        System.out.println("result----->"+new String(result)); 
         
         
        //解密 
        //初始化 
        //Cipher.DECRYPT_MODE 为解密模式 
        //key 为密钥 
        cipher.init(Cipher.DECRYPT_MODE, key,param); 
        //对加密后的byte[]进行解密 
        byte[] b = cipher.doFinal(result); 
        System.out.println("b------>"+new String(b)); 
         
         
    } 

作者“mutourenoo”
 

补充:综合编程 , 安全编程 ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,