• 大小: 768KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-22
  • 语言: Java
  • 标签: 密钥分配  

资源简介

密钥分配(RSA+DES混合加密含源程序) - lly1122334的博客 - CSDN博客 http://blog.csdn.net/lly1122334/article/details/78959639

资源截图

代码片段和文件信息



import java.security.NoSuchAlgorithmException;
import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;
import javax.crypto.SecretKeyFactory;
import javax.crypto.spec.DESedeKeySpec;
  
/** 
 * DES加密与解密采用base64编码
 * 
 * @author XerCis
 */  
public class DESProvider {  
  
    private static final String KEY_ALGORITHM = “DESede“;//指定算法为DESedge
    private static int KEYSIZE = 168;//加密Key的长度
  
    /** 
     *  
     * 生成对称密钥
     * @return Mapject>
     * @throws Exception 
     * @author XerCis
     * @throws NoSuchAlgorithmException 
     */  
    public static String generateKey() throws NoSuchAlgorithmException {
KeyGenerator kg = KeyGenerator.getInstance(KEY_ALGORITHM);
kg.init(KEYSIZE);//初始化密钥生成器
SecretKey k = kg.generateKey();//生成密钥
byte[] keyBytes = k.getEncoded();//获取二进制编码形式
return StreamUtil.byteTobase64(keyBytes);
    }
    
    /** 
     * 加密数据
     * @param data 待加密数据 
     * @param key 密钥 
     * @return byte[] 加密后的数据 
     * */  
    public static byte[] encrypt(String dataString key) throws Exception{  
     byte[] bytes = data.getBytes(“UTF-8“);//将数据转换成字节数组
    
     byte[] keyBytes = StreamUtil.base64ToByte(key);//还原密钥
     DESedeKeySpec dks = new DESedeKeySpec(keyBytes);//实例化DES密钥
        SecretKeyFactory skf = SecretKeyFactory.getInstance(KEY_ALGORITHM);//实例化密钥工厂
        SecretKey sk = skf.generateSecret(dks);//生成密钥
        
        Cipher cipher = Cipher.getInstance(KEY_ALGORITHM);//实例化  
        cipher.init(Cipher.ENCRYPT_MODE sk);//初始化,设置为加密模式 
        return cipher.doFinal(bytes);//执行操作
    }
    
    /** 
     * 解密数据
     * @param data 待解密数据 
     * @param key 密钥 
     * @return String 解密后的数据 
     * */  
    public static String decrypt(byte[] dataString key) throws Exception{
     byte[] keyBytes = StreamUtil.base64ToByte(key);//还原密钥
     DESedeKeySpec dks = new DESedeKeySpec(keyBytes);//实例化DES密钥
        SecretKeyFactory skf = SecretKeyFactory.getInstance(KEY_ALGORITHM);//实例化密钥工厂
        SecretKey sk = skf.generateSecret(dks);//生成密钥

        Cipher cipher = Cipher.getInstance(KEY_ALGORITHM);//实例化
        cipher.init(Cipher.DECRYPT_MODE sk);//初始化,设置为解密模式 
        return new String(cipher.doFinal(data));//执行操作
    }
  
    
    
    public static void main(String[] args) throws Exception{
     String symmetricKey = DESProvider.generateKey();
     String data = “  SECRET  DESede  RAW  YhOJtnk3uuPHXYoHDlIZ2lslPTduxxnQ“;
     byte[] ctext = DESProvider.encrypt(data symmetricKey);
     System.out.println(DESProvider.decrypt(ctext symmetricKey));
    }
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件        359  2018-01-03 11:36  KeyDistribution\.classpath

     文件        391  2018-01-02 09:38  KeyDistribution\.project

     文件        107  2018-01-03 09:45  KeyDistribution\.settings\org.eclipse.core.resources.prefs

     文件       2851  2018-01-03 11:36  KeyDistribution\bin\DESProvider.class

     文件       1917  2018-01-03 11:39  KeyDistribution\bin\Main.class

     文件       5910  2018-01-03 11:41  KeyDistribution\bin\RSAProvider.class

     文件       3614  2018-01-03 11:36  KeyDistribution\bin\StreamUtil.class

     文件     284220  2011-10-08 17:41  KeyDistribution\lib\apache-commons-lang.jar

     文件     589803  2018-01-03 11:26  KeyDistribution\lib\xstream-1.4.10.jar

     文件       3174  2018-01-03 10:58  KeyDistribution\src\DESProvider.java

     文件       1280  2018-01-03 11:30  KeyDistribution\src\Main.java

     文件       6628  2018-01-03 11:41  KeyDistribution\src\RSAProvider.java

     文件       3365  2018-01-03 11:19  KeyDistribution\src\StreamUtil.java

     目录          0  2018-01-03 11:33  KeyDistribution\.settings

     目录          0  2018-01-03 11:36  KeyDistribution\bin

     目录          0  2018-01-03 11:35  KeyDistribution\lib

     目录          0  2018-01-03 11:36  KeyDistribution\src

     目录          0  2018-01-03 11:40  KeyDistribution

----------- ---------  ---------- -----  ----

               903619                    18


评论

共有 条评论