Java生成RSA非对称型加密的公钥和私钥

 我来答
大沈他次苹0B
2022-10-16 · TA获得超过7325个赞
知道大有可为答主
回答量:3059
采纳率:100%
帮助的人:178万
展开全部

  非对称型加密非常适合多个客户端和服务器之间的秘密通讯 客户端使用同一个公钥将明文加密 而这个公钥不能逆向的解密 密文发送到服务器后有服务器端用私钥解密 这样就做到了明文的加密传送

  非对称型加密也有它先天的缺点 加密 解密速度慢制约了它的发挥 如果你有大量的文字需要加密传送 建议你通过非对称型加密来把对称型 密钥 分发到客户端 及时更新对称型 密钥

  import java io *;

  import java security *;

  import javax crypto *;

  import javax crypto spec *;

  /**

  * <p>Title: RSA非对称型加密的公钥和私钥</p>

  * <p>Description: </p>

  * <p>Copyright: Copyright (c) </p>

  * <p>Company: </p>

  * @author not attributable

  * @version

  */

  public class KeyRSA {

  private KeyPairGenerator kpg = null;

  private KeyPair kp = null;

  private PublicKey public_key = null;

  private PrivateKey private_key = null;

  private FileOutputStream public_file_out = null;

  private ObjectOutputStream public_object_out = null;

  private FileOutputStream private_file_out = null;

  private ObjectOutputStream private_object_out = null;

  /**

  * 构造函数

  * @param in 指定密匙长度(取值范围 ~ )

  * @throws NoSuchAlgorithmException 异常

  */

  public KeyRSA(int in String address) throws NoSuchAlgorithmException FileNotFoundException IOException

  {

  kpg = KeyPairGenerator getInstance( RSA ); //创建 密匙对 生成器

  kpg initialize(in); //指定密匙长度(取值范围 ~ )

  kp = kpg genKeyPair(); //生成 密匙对 其中包含着一个公匙和一个私匙的信息

  public_key = kp getPublic(); //获得公匙

  private_key = kp getPrivate(); //获得私匙

  //保存公匙

  public_file_out = new FileOutputStream(address + /public_key dat );

  public_object_out = new ObjectOutputStream(public_file_out);

  public_object_out writeObject(public_key);

  //保存私匙

  private_file_out = new FileOutputStream(address + /private_key dat );

  private_object_out = new ObjectOutputStream(private_file_out);

  private_object_out writeObject(private_key);

  }

  public static void main(String[] args) {

  try {

  System out println( 私匙和公匙保存到C盘下的文件中 );

  new KeyRSA( c:/ );

  }

  catch (IOException ex) {

  }

  catch (NoSuchAlgorithmException ex) {

  }

  }

lishixinzhi/Article/program/Java/hx/201311/26592

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式