面试官:对称加密和非对称加密有什么区别?
在线 Java 面试刷题持续更新https://www.quanxiaoha.com/java-interview目录面试考察点核心答案深度解析一、对称加密一把钥匙开一把锁二、非对称加密两把钥匙各司其职三、两种加密方式的对比四、混合加密取长补短的最佳实践五、非对称加密的另一个重要用途数字签名面试高频追问常见面试变体记忆口诀总结面试考察点基础掌握度面试官不仅仅是想知道 一个用一把钥匙一个用两把钥匙更是想知道你是否理解两种加密方式的工作原理、密钥管理方式、以及各自的安全特性。应用场景理解考察你是否清楚两种加密方式分别适合什么场景为什么 HTTPS 要 混合使用以及在实际项目中如何选择合适的加密方案。性能与安全的权衡如果你能从性能、安全性、密钥管理等多个维度进行对比分析说明你对加密技术有深入的理解而不是停留在概念层面。核心答案对称加密和非对称加密的核心区别在于密钥的使用方式对比维度对称加密非对称加密密钥数量1 把加密解密用同一把2 把公钥 私钥加密速度快适合大量数据慢比对称加密慢 100-1000 倍密钥分发困难如何安全传输密钥简单公钥公开私钥自己留着安全性密钥泄露则全完私钥保密公钥可以公开代表算法AES、DES、ChaCha20RSA、ECC、DSA典型场景大量数据加密传输密钥交换、数字签名一句话总结对称加密快但密钥难传非对称加密安全但速度慢实际应用中通常混合使用——用非对称加密交换密钥用对称加密传输数据。深度解析一、对称加密一把钥匙开一把锁对称加密是最古老、最直观的加密方式。它的核心思想是加密和解密使用同一把密钥。Image 1上图展示了对称加密的核心流程加密过程发送方用密钥 K 对明文进行加密得到密文。传输过程密文通过网络传输即使被截获没有密钥 K 也无法解密。解密过程接收方用同一把密钥 K 对密文进行解密还原成明文。对称加密的核心问题——密钥分发难题Image 2常见的对称加密算法算法密钥长度特点现状AES128/192/256 位安全、高效、硬件加速✅ 主流推荐ChaCha20256 位软件实现快移动端友好✅ TLS 1.3 支持DES56 位密钥太短容易被暴力破解❌ 已淘汰3DES168 位DES 的改进版但效率低⚠️ 逐步淘汰二、非对称加密两把钥匙各司其职非对称加密解决了密钥分发难题。它的核心思想是公钥加密私钥解密。Image 3上图展示了非对称加密的核心流程密钥对生成接收方如服务器生成一对密钥——公钥和私钥。公钥可以公开给任何人私钥必须严格保密。公钥分发接收方把公钥发给发送方或公开发布。因为公钥是公开的所以不怕被截获。加密过程发送方用接收方的公钥加密数据。加密后的密文只有对应的私钥才能解密。解密过程接收方用自己的私钥解密得到明文。非对称加密的数学原理非对称加密的安全性依赖于数学难题RSA 算法——基于大数分解难题找两个大质数 p 和 q计算 n p × q容易但已知 n要分解出 p 和 q极难。当 n 是 2048 位二进制数时当前计算机需要数亿年。ECC 算法——基于椭圆曲线离散对数难题256 位 ECC 的安全性 ≈ 3072 位 RSA密钥更短、计算更快、带宽更省适合移动端、物联网设备。常见的非对称加密算法算法密钥长度安全性特点RSA2048/4096 位高最经典广泛支持ECC256/384 位高密钥短效率高DSA2048 位高仅用于签名不用于加密三、两种加密方式的对比Image 4四、混合加密取长补短的最佳实践既然两种加密各有优缺点为什么不结合使用呢这就是混合加密的思路Image 5上图展示了混合加密的核心思想握手阶段使用非对称加密如 RSA 或 ECDHE安全地交换对称密钥。虽然非对称加密慢但只交换一个小小的密钥开销可以接受。数据传输阶段使用协商好的对称密钥如 AES加密业务数据。对称加密快适合大量数据传输。会话结束对称密钥销毁。下次连接生成新的密钥保证 完美前向保密。五、非对称加密的另一个重要用途数字签名非对称加密除了用于加密还常用于数字签名。签名过程和加密过程相反私钥签名公钥验证。Image 6数字签名的三大作用防篡改数据被修改后摘要变化签名验证失败防抵赖只有私钥持有者才能签名无法否认身份认证用公钥验证签名确认发送方身份典型应用HTTPS 证书签名CA 用私钥签发证书、软件发布签名验证软件未被篡改、电子合同、电子发票。面试高频追问追问一为什么 HTTPS 要用混合加密纯对称加密无法安全传输密钥纯非对称加密性能太差。混合加密各取所长非对称加密用于密钥交换安全对称加密用于数据传输高效。追问二RSA 和 ECC 有什么区别为什么现代系统更推荐 ECCRSA 基于大数分解难题ECC 基于椭圆曲线离散对数难题。ECC 在相同安全级别下密钥更短256 位 ECC ≈ 3072 位 RSA计算更快带宽更省更适合移动端和物联网。追问三什么是数字签名它和加密有什么区别加密是为了保密防止被偷看签名是为了认证防止被篡改和抵赖。加密是公钥加密、私钥解密签名是私钥签名、公钥验证。追问四AES 和 DES 有什么区别为什么 DES 被淘汰了DES 密钥长度只有 56 位现代计算机可以在短时间内暴力破解。AES 密钥长度可达 256 位安全性更高且支持硬件加速性能更好。常见面试变体变体一请解释 HTTPS 的加密原理为什么不是单纯用对称或非对称加密变体二RSA 算法的原理是什么为什么它是安全的变体三数字签名是如何保证数据完整性和身份认证的变体四如果让你设计一个安全通信系统你会如何选择加密方案记忆口诀对称加密一把钥匙加密解密都用它。快但密钥难传。非对称加密两把钥匙公钥加密私钥解密。安全但速度慢。混合加密非对称传密钥对称传数据。安全又高效。数字签名私钥签名公钥验证。防篡改、防抵赖、认证身份。总结对称加密使用同一把密钥加密解密速度快但密钥分发困难非对称加密使用公钥私钥对公钥加密私钥解密解决了密钥分发问题但性能较差。实际应用中通常混合使用——用非对称加密安全交换对称密钥用对称加密高效传输数据HTTPS 就是典型的混合加密应用。 欢迎加入小哈的星球你将获得:专属的项目实战多个项目 / 1v1 提问 /Java 学习路线 /学习打卡 / 每月赠书 / 社群讨论新项目《Spring AI 项目实战》正在更新中..., 基于 Spring AI Spring Boot 3.x JDK 21;《从零手撸仿小红书微服务架构》 已完结基于 Spring Cloud Alibaba Spring Boot 3.x JDK 17..., 点击查看项目介绍演示地址http://116.62.199.48:7070/《从零手撸前后端分离博客项目全栈开发》2期已完结,演示链接http://116.62.199.48/;专栏阅读地址https://www.quanxiaoha.com/column截止目前累计输出 100w 字讲解图 4013 张还在持续爆肝中..后续还会上新更多项目目标是将 Java 领域典型的项目都整一波如秒杀系统, 在线商城, IM 即时通讯Spring Cloud Alibaba 等等戳我加入学习解锁全部项目已有4200小伙伴加入1. 我的私密学习小圈子从0到1手撸企业实战项目~ 2. JDK17 前后写法对比差点没认出是 Java 3. 面试官TCP 和 UDP 的区别是什么 4. 面试官HTTPS 和 HTTP 的区别是什么最近面试BAT整理一份面试资料《Java面试BATJ通关手册》覆盖了Java核心技术、JVM、Java并发、SSM、微服务、数据库、数据结构等等。 获取方式点“在看”关注公众号并回复 Java 领取更多内容陆续奉上。PS因公众号平台更改了推送规则如果不想错过内容记得读完点一下“在看”加个“星标”这样每次新文章推送才会第一时间出现在你的订阅列表里。 点“在看”支持小哈呀谢谢啦

相关新闻

最新新闻

日新闻

周新闻

月新闻