zoukankan      html  css  js  c++  java
  • java中的数据加密3 非对称加密

      非对称加密也加公钥加密,不对称算法使用一对密钥对,一个公钥,一个私钥,使用公钥加密的数据,只有私钥能解开(可用于加密);同时,使用私钥加密的数据,只有公钥能解开(签名)。但是速度很慢(比私钥加密慢100到1000倍),公钥的主要算法有RSA,还包括Blowfish,Diffie-Helman等

    import java.security.KeyPair;
    import java.security.KeyPairGenerator;
    
    import javax.crypto.Cipher;
    
    public class PublicTest {
        public static void main(String[] args) throws Exception {
            byte[] srcText = "public key encryption test".getBytes("UTF8");
            // 构成一个RSA密钥
            KeyPairGenerator keyGen = KeyPairGenerator.getInstance("RSA");
            keyGen.initialize(1024);
            KeyPair key = keyGen.generateKeyPair();
            // 获得一个RSA的Cipher类,使用公鈅加密
            Cipher cipher = Cipher.getInstance("RSA/ECB/PKCS1Padding");
            System.out.println(" " + cipher.getProvider().getInfo());
            cipher.init(Cipher.ENCRYPT_MODE, key.getPublic());
            byte[] cipherText = cipher.doFinal(srcText);
            System.out.println(new String(cipherText, "UTF8"));
            // 使用私鈅解密
            cipher.init(Cipher.DECRYPT_MODE, key.getPrivate());
            byte[] newPlainText = cipher.doFinal(cipherText);
            System.out.println(new String(newPlainText, "UTF8"));
        }
    }
  • 相关阅读:
    洛谷P1762 偶数
    复习1
    zoj3329 One Person Game
    poj2096 Collecting Bugs
    hdu4035 Maze
    Cogs 2856. [洛谷U14475]部落冲突
    洛谷P2474 [SCOI2008]天平
    洛谷P3802 小魔女帕琪
    清北刷题冲刺 11-03 p.m
    清北刷题冲刺 11-03 a.m
  • 原文地址:https://www.cnblogs.com/happyPawpaw/p/3740690.html
Copyright © 2011-2022 走看看