繁体   English   中英

Java-javax.crypto.Mac和javax.crypto.Cipher之间的区别?

[英]Java - Difference between javax.crypto.Mac and javax.crypto.Cipher?

我想了解javax.crypto.Macjavax.crypto.Cipher之间的区别。 这两个类看起来非常相似(它们具有相似的方法,但是这两个类并不相互继承)。

  1. 这两个类之间的根本区别是什么?
  2. 我什么时候应该使用(或不使用)Mac?
  3. 我什么时候应该使用(或不使用)密码?

消息验证码用于完整性。 它在某些输入消息上计算一种取决于消息和密钥的“密钥校验和”。 有了密钥知识,就可以验证MAC以匹配给定的消息。 因此可靠地检测到变化。

对称加密算法用于保密。 它将消息转换为不可读的位序列; 如果解密密钥已知,则加密是可逆的。

MAC不保证机密性; 该消息保持原样,清晰易读。 加密不能确保完整性; 更改可能不会被发现。 在正确应用的密码学中,您同时需要两者。 (但是请注意,这个“适当的”术语很大。)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM