ftr*_*ter 5 javascript php encryption rsa client-certificates
我有兴趣使用LAMPhp服务器上的公钥加密,使用Web客户端上的相应私钥解密(至少是firefox,如果是标准的javascript则最好)
请注意,我想要做的是 - 不仅仅是使用SSL/https进行加密连接.甚至使用基于浏览器的客户端证书作为登录/访问控制方法.我知道如何做这两件事.我想做的更像是用gpg键发送电子邮件.我希望能够创建一条短消息,我将使用用户公钥加密 - 只有他们可以使用他们的私钥解密.我正在寻找的不是ssl自动实现的隐私,而是仅允许特定用户解密消息的能力.我知道我可以用gpg或SMIME轻松做到这一点,也许这是最好的方法,但我更喜欢基于网络的替代品.
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>";
?>
Run Code Online (Sandbox Code Playgroud)
请注意,我通过stackedoverflow找到了许多优秀的javascript加密库...但我实际上想要使用按照MyOpenId.com或CaCert.org导入Firefox的密钥
有谁知道这是否可能?
谢谢,-FT
mat*_*sta -1
您不在 PHP 中处理 SSL。SSL 由 Web 服务器自动处理。如果您使用 Apache,这里有一个简单的教程:
http://www.debian-administration.org/article/Setting_up_an_SSL_server_with_Apache2
这个想法是,您像平常一样编写代码,当用户使用 https 访问您的网站时,服务器会自动加密连接。在客户端,浏览器能够使用已有的私钥自动解密连接并将代码呈现给用户代理。
希望这可以帮助!