公钥私钥
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()); } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!