• 大小: 45KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-05-28
  • 语言: Java
  • 标签: rsa非对称  

资源简介

java rsa非对称加密算法3个实例源代码

资源截图

代码片段和文件信息

package com.zl.test1;

import java.math.BigInteger;  
import java.security.KeyFactory;  
import java.security.KeyPair;  
import java.security.KeyPairGenerator;  
import java.security.NoSuchAlgorithmException;  
import java.security.interfaces.RSAPrivateKey;  
import java.security.interfaces.RSAPublicKey;  
import java.security.spec.RSAPrivateKeySpec;  
import java.security.spec.RSAPublicKeySpec;  
import java.util.HashMap;  
  
import javax.crypto.Cipher;  
  
public class RSAUtils {  
  
    /** 
     * 生成公钥和私钥 
     * @throws NoSuchAlgorithmException  
     * 
     */  
    public static HashMapject> getKeys() throws NoSuchAlgorithmException{  
        HashMapject> map = new HashMapject>();  
        KeyPairGenerator keyPairGen = KeyPairGenerator.getInstance(“RSA“);  
        keyPairGen.initialize(1024);  
        KeyPair keyPair = keyPairGen.generateKeyPair();  
        RSAPublicKey publicKey = (RSAPublicKey) keyPair.getPublic();  
        RSAPrivateKey privateKey = (RSAPrivateKey) keyPair.getPrivate();  
        map.put(“public“ publicKey);  
        map.put(“private“ privateKey);  
        return map;  
    }  
    /** 
     * 使用模和指数生成RSA公钥 
     * 注意:【此代码用了默认补位方式,为RSA/None/PKCS1Padding,不同JDK默认的补位方式可能不同,如Android默认是RSA 
     * /None/NoPadding】 
     *  
     * @param modulus 
     *            模 
     * @param exponent 
     *            指数 
     * @return 
     */  
    public static RSAPublicKey getPublicKey(String modulus String exponent) {  
        try {  
            BigInteger b1 = new BigInteger(modulus);  
            BigInteger b2 = new BigInteger(exponent);  
            KeyFactory keyFactory = KeyFactory.getInstance(“RSA“);  
            RSAPublicKeySpec keySpec = new RSAPublicKeySpec(b1 b2);  
            return (RSAPublicKey) keyFactory.generatePublic(keySpec);  
        } catch (Exception e) {  
            e.printStackTrace();  
            return null;  
        }  
    }  
  
    /** 
     * 使用模和指数生成RSA私钥 
     * 注意:【此代码用了默认补位方式,为RSA/None/PKCS1Padding,不同JDK默认的补位方式可能不同,如Android默认是RSA 
     * /None/NoPadding】 
     *  
     * @param modulus 
     *            模 
     * @param exponent 
     *            指数 
     * @return 
     */  
    public static RSAPrivateKey getPrivateKey(String modulus String exponent) {  
        try {  
            BigInteger b1 = new BigInteger(modulus);  
            BigInteger b2 = new BigInteger(exponent);  
            KeyFactory keyFactory = KeyFactory.getInstance(“RSA“);  
            RSAPrivateKeySpec keySpec = new RSAPrivateKeySpec(b1 b2);  
            return (RSAPrivateKey) keyFactory.generatePrivate(keySpec);  
        } catch (Exception e) {  
            e.printStackTrace();  
            return null;  
        }  
    }  
  
    /** 
     * 公钥加密 
     *  
     * @param data 
     * @param publicKey 
     * @return 
     * @throws Exception 
     */  
    public

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2017-03-07 16:54  Security\
     文件         364  2017-03-09 16:18  Security\.classpath
     目录           0  2017-03-07 15:39  Security\.myeclipse\
     目录           0  2017-03-07 15:39  Security\.myeclipse\profiler\
     文件        1266  2017-03-07 15:39  Security\.myeclipse\profiler\TestMain.xml
     文件         384  2017-03-07 15:30  Security\.project
     目录           0  2017-03-07 15:30  Security\.settings\
     文件         598  2017-03-07 15:30  Security\.settings\org.eclipse.jdt.core.prefs
     目录           0  2017-03-09 16:18  Security\bin\
     目录           0  2017-03-09 16:18  Security\bin\com\
     目录           0  2017-03-09 16:18  Security\bin\com\zl\
     目录           0  2017-03-09 16:18  Security\bin\com\zl\test1\
     文件        6525  2017-03-09 16:18  Security\bin\com\zl\test1\RSAUtils.class
     文件        2282  2017-03-09 16:18  Security\bin\com\zl\test1\TestMain.class
     目录           0  2017-03-09 16:18  Security\bin\com\zl\test2\
     文件        2576  2017-03-09 16:18  Security\bin\com\zl\test2\base64Utils.class
     文件        5086  2017-03-09 16:18  Security\bin\com\zl\test2\RSATester.class
     文件        6733  2017-03-09 16:18  Security\bin\com\zl\test2\RSAUtils.class
     目录           0  2017-03-09 16:18  Security\bin\com\zl\test3\
     文件        4458  2017-03-09 16:18  Security\bin\com\zl\test3\base64.class
     文件        2418  2017-03-10 21:14  Security\bin\com\zl\test3\MainTest.class
     文件        9002  2017-03-09 16:18  Security\bin\com\zl\test3\RSAEncrypt.class
     文件        2958  2017-03-09 16:18  Security\bin\com\zl\test3\RSASignature.class
     目录           0  2017-03-09 16:18  Security\bin\com\zl\uuid\
     文件        1120  2017-03-09 16:18  Security\bin\com\zl\uuid\Uuid.class
     目录           0  2017-03-07 17:13  Security\doc\
     文件         874  2017-03-07 17:13  Security\doc\privateKey.keystore
     文件         222  2017-03-07 17:13  Security\doc\publicKey.keystore
     目录           0  2017-03-09 16:18  Security\lib\
     文件        4364  2017-03-07 15:56  Security\lib\javabase64-1.3.1.jar
     目录           0  2017-03-09 16:16  Security\src\
............此处省略16个文件信息

评论

共有 条评论

相关资源