公钥私钥

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
对称加密
    用同一个密钥进行加密和解密
公钥和私钥
    非对称加密算法(用一对密钥,A加密,B解密)
    加密和解密的密码不一样,一个是公钥,一个是私钥
    公钥和私钥成对出现
    公开的密钥叫公钥,只有自己知道的叫私钥
    用公钥加密的数据只有对应的私钥可以解密
    用私钥解密的数据只有对应的公钥可以解密
    公钥和私钥是相对的,两者本身并没有规定哪一个必须是公钥或者私钥
    公钥和私钥作用加解密和加验签
        加解密
            假设B有一对公私钥,当A将自己的作业答案发给B时,用了B的公钥对这条信息进行加密
            那么这个过程中想要抄作业的C就不能解开这条信息,只有具备私钥的B才可以解开这条信息
        私钥加签公钥验签
            加签目的是让消息接收方确认消息是由特定方发送的
            私钥只存在B,也只有B才能对消息进行加签,这个过程叫签名
            公钥去对加过签名的消息进行验签,确定消息的真伪

CA证书

解决问题

  • 客户请求到达目标服务器过程中,被恶意服务器拦截代替发送伪造公钥
  • 身份认证问题

 

 

 

Java生成公钥私钥

 

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public static void main(String[] args){
    int keySize=6;
    KeyPairGenerator kpg;
    try{
        kpg=KeyPairGenerator.getInstance("RSA");
    }catch(Exception e){
         
    }
    //初始化KeyPairGenerator对象,密钥长度
    kpg.initialize(keySize);
    //生成密钥
    KeyPair keyPair=kpg.generateKeyPair();
    //得到公钥
    String publicKey=Base64.encodeBase64URLSafeString(keyPair.getPublic().getEncoded());
    //得到私钥
    String privateKey=Base64.encodeBase64URLSafeString(keyPair.getPrivate().getEncoded());
}

  

posted @   smatterer  阅读(51)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示