我有兴趣在 LAMPhp 服务器上使用公钥加密的东西,使用 Web 客户端上的适当私钥解密(至少是 firefox,最好是标准 javascript)
请注意,我想要做的不仅仅是使用 SSL/https 进行加密连接。甚至使用基于浏览器的客户端证书作为登录/访问控制方法。我知道如何做这两件事。我想做的更像是使用 gpg 密钥发送电子邮件。我希望能够创建一条短消息,我将使用用户公钥加密该消息 - 只有他们 - 才能使用他们的私钥解密。我正在寻找的不是 ssl 自动实现的隐私,而是只允许特定用户解密消息的能力。我知道我可以使用 gpg 或 SMIME 轻松做到这一点,这也许是最好的方法,但我更喜欢基于 Web 的替代方案。
Firefox 等有一个证书存储,我知道出于明显的安全原因,持有的私钥不太可能导出到 javascript 中,但我认为有一些方法可以 - 使用 - 来自 javascript 调用的证书来解密某些东西..
我想这样做的原因是,我需要一种安全的方法来将随机生成的密码提供给特定的管理员。我正在尝试实现完整的数据库半透明性,而公钥加密似乎是这项工作的重要组成部分。但这是一个用例,如果没有这种能力,我将无法解决。
所以在php方面我会像这样使用openssl加密调用......
<?php
$browsers_public_key = get_it_from_the_browser_via_apache_maybe();
openssl_public_encrypt($data,$encrypted_ends_up_here,$browsers_public_key);
echo "<html><head>
<script type='javascript'>
function decrypt_textarea(){
??
}
</script>
</head>
<body><textarea id='decrypt_me'> $encrypted_ends_up_here </textarea>
<div id='where_the_plaintext_goes'> </div>
</body> </html>";
?>
请注意,我通过stackoverflow 发现了许多优秀的javascript 加密库......但我实际上想使用根据MyOpenId.com 或CaCert.org 导入Firefox 的密钥
有谁知道这是否可能?
谢谢,-FT