知识大全 java RSA 加解密

Posted

篇首语:没有爱的教学,宛如无水池塘,终将群鲜枯竭。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 java RSA 加解密相关的知识,希望对你有一定的参考价值。

java RSA 加解密  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  import java security Key;

  import java security KeyFactory;

  import java security KeyPair;

  import java security KeyPairGenerator;

  import java security PrivateKey;

  import java security PublicKey;

  import java security interfaces RSAPrivateKey;

  import java security interfaces RSAPublicKey;

  import java security spec PKCS EncodedKeySpec;

  import java security spec X EncodedKeySpec;

  import javax crypto Cipher;

  import sun misc BASE Decoder;

  import sun misc BASE Encoder;

  public class RSACoder

  /**

  * 得到公钥

  * @param key 密钥字符串(经过base 编码)

  * @throws Exception

  */

  public static PublicKey getPublicKey(String key) throws Exception

  byte[] keyBytes;

  keyBytes = (new BASE Decoder()) decodeBuffer(key);

  X EncodedKeySpec keySpec = new X EncodedKeySpec(keyBytes);

  KeyFactory keyFactory = KeyFactory getInstance( RSA );

  PublicKey publicKey = keyFactory generatePublic(keySpec);

  return publicKey;

  

  /**

  * 得到私钥

  * @param key 密钥字符串(经过base 编码)

  * @throws Exception

  */

  public static PrivateKey getPrivateKey(String key) throws Exception

  byte[] keyBytes;

  keyBytes = (new BASE Decoder()) decodeBuffer(key);

  PKCS EncodedKeySpec keySpec = new PKCS EncodedKeySpec(keyBytes);

  KeyFactory keyFactory = KeyFactory getInstance( RSA );

  PrivateKey privateKey = keyFactory generatePrivate(keySpec);

  return privateKey;

  

  /**

  * 得到密钥字符串(经过base 编码)

  * @return

  */

  public static String getKeyString(Key key) throws Exception

  byte[] keyBytes = key getEncoded();

  String s = (new BASE Encoder()) encode(keyBytes);

  return s;

  

  public static void main(String[] args) throws Exception

  KeyPairGenerator keyPairGen = KeyPairGenerator getInstance( RSA );

  //密钥位数

  keyPairGen initialize( );

  //密钥对

  KeyPair keyPair = keyPairGen generateKeyPair();

  // 公钥

  PublicKey publicKey = (RSAPublicKey) keyPair getPublic();

  // 私钥

  PrivateKey privateKey = (RSAPrivateKey) keyPair getPrivate();

  String publicKeyString = getKeyString(publicKey);

  System out println( public:\\n + publicKeyString);

  String privateKeyString = getKeyString(privateKey);

  System out println( private:\\n + privateKeyString);

  //加解密类

  Cipher cipher = Cipher getInstance( RSA );//Cipher getInstance( RSA/ECB/PKCS Padding );

  //明文

  byte[] plainText = 我们都很好!邮件 getBytes();

  //加密

  cipher init(Cipher ENCRYPT_MODE publicKey);

  byte[] enBytes = cipher doFinal(plainText);

  //通过密钥字符串得到密钥

  publicKey = getPublicKey(publicKeyString);

  privateKey = getPrivateKey(privateKeyString);

  //解密

  cipher init(Cipher DECRYPT_MODE privateKey);

  byte[]deBytes = cipher doFinal(enBytes);

  publicKeyString = getKeyString(publicKey);

  System out println( public:\\n +publicKeyString);

  privateKeyString = getKeyString(privateKey);

  System out println( private:\\n + privateKeyString);

  String s = new String(deBytes);

  System out println(s);

  

cha138/Article/program/Java/hx/201311/25516

相关参考

知识大全 Java文件加解密

Java文件加解密  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  做网站有时会处理一些上传下载的

知识大全 java非对称加密的源代码(RSA)

java非对称加密的源代码(RSA)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  鉴于rsa加

知识大全 RSA算法的实现——java版

RSA算法的实现——java版  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!    package

知识大全 JAVA里面RSA加密算法的使用

JAVA里面RSA加密算法的使用  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  打算写这个类用于

知识大全 Java生成RSA非对称型加密的公钥和私钥

Java生成RSA非对称型加密的公钥和私钥  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  非对称

知识大全 Java中常用的加密算法MD5,SHA,RSA

Java中常用的加密算法MD5,SHA,RSA  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  M

知识大全 java密码加密与解密

  以下两个类可以很方便的完成字符串的加密和解密  加密CryptHelperencrypt(password)  解密CrypHelperdecrypt(password)  代码如下  Crypt

知识大全 java字符串加密解密

  java字符串加密解密  tryStringtest=EncryptionDecryptiondes=newEncryptionDecryption(tourhb)//自定义密钥Systemout

知识大全 Java多线程应用方法全解密

Java多线程应用方法全解密  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Java多线程是我们

知识大全 Java中3DES加密解密示例

Java中3DES加密解密示例  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在java中调用s