关于 php:phpseclib Crypt_RSA:为什么要使用公钥进行解密?
phpseclib Crypt_RSA: Why is public key used for decryption?
我正在查看 RSA 加密的 phpseclib 手册,并注意到公钥用于解密数据和私钥用于加密。
根据我的阅读和理解,公钥用于加密,私钥用于解密,因此为什么它是私有的,或者我遗漏了什么?
例子
|
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
<?php
include('Crypt/RSA.php'); $rsa = new Crypt_RSA(); $plaintext = 'Hello World!'; $publickey = '-----BEGIN PUBLIC KEY----- $rsa->loadKey($privatekey); $rsa->loadKey($publickey); echo 'INPUT: '.$plaintext.'<br />'; |
谢谢
相关讨论
- 也许这有助于一般理解:en.wikipedia.org/wiki/Public-key_cryptography
如果您使用私钥加密,任何人都可以解密它,但只能使用您的公钥,从而验证它来自您。当然,如果您这样做,您可能会更好地签署您的消息。 PKCS#1 标准并未对签名和加密进行相同的定义,实际上,签名消息的安全证明比加密消息的安全证明更强。
W.r.t. phpseclib 文档......这可能只是开发人员的疏忽或混乱。也许他们意识到了错误,但不想立即修复它,因为它不是代码问题,现在只是继续忘记它?我不知道...我知道我能做到。我对自己的代码比对文档更自豪。