![]() |
1
3
你问这个问题已经有一段时间了,但是如果你或其他人正在寻找这个问题或类似问题的潜在解决方案,他们应该查看JavaScript Forge项目: http://github.com/digitalbazaar/forge/blob/master/README 这个项目有一个JavaScript中的SSL实现,允许您在与Apache通信时包含客户端证书。您还可以使用相关的私钥(您可以在JavaScript中访问)手动执行RSA解密。 例如,JavaScript可以获取/发布到服务器,并包含其客户端证书。Apache可以读取该证书,使用公钥加密任何适当的数据,然后将该数据返回给客户端。然后,客户机可以使用其私钥(JavaScript)解密信息并对其进行处理。然而,如果您的服务器可以将客户端证书验证为您试图传递的秘密的适当接收者,那么这种额外的加密甚至可能没有必要。 Forge项目还提供了API来构建一个系统,用于向Firefox或其他浏览器导入/导出密钥和证书(如果出于某种原因仍然需要)。为了以正确的格式导入/导出密钥/证书(pem=>pkcs12),可能需要openssl提供一些帮助,但是可以在基于JavaScript的WebID演示中找到一些这样的例子。WebID是一种基于客户端证书的身份验证系统: WebID管理演示: https://webid.digitalbazaar.com/manage/ WebID身份验证演示: https://payswarm.com/webid-demo/ 请注意,上述站点的SSL证书是自签名的,需要在浏览器中添加临时例外才能查看它们。这些网站不要求您输入任何个人信息,它们仅用于演示目的。但是,如果您转到第一个链接,您可以在浏览器中生成密钥(它使用Forge JavaScript来完成此操作),然后您可以在页面顶部的列表中看到以PEM格式生成的私钥和证书。密钥和证书通过闪存本地存储保存。 WebID管理网站几乎100%(如果不是的话)的源代码是可查看的,因为它主要是JavaScript。此外,Forge项目本身(参见github链接)是开源的。 |
![]() |
2
2
现在我明白你的意思了,我可以给你一个明确的答案:) 我能告诉你的最好的情况是,你不能以你想要的方式得到像样的加密。私钥加密(即RSA)使用非常非常大的数字进行加密。使用较小的数字在计算上很容易破解(素数只有这么多),而且数字很快就会变大。基本上,使用RSA时,需要获取大量数据,并将其提升到大指数。JavaScript能够支持相当大的数字,但你会在性能上遇到困难。使用512位密钥,对几千字节的加密可能需要几秒钟,而解密可能需要几秒钟到几分钟。JS如此之慢的原因很简单,因为它不是一种编译语言。当然,你可以减少密钥大小,但是任何超过几千字节的都有问题。 此外,RSA在网页中本质上是不安全的,因为私钥与要解密的数据一起传输(除非它之前被传输),这使得任何接收到该页面的人都能够解密数据。 我将假设您希望这样做是因为您希望混淆来自用户或客户端的一些代码,所以我建议您检查XOR加密。诚然,它远没有RSA那么安全,但它使用的原则是,如果使用得当,可以非常安全。例如,如果您使用的随机密钥只使用了一次,并且与数据/代码的长度相同(一次性键盘),则您的加密是“不可破解的”。更好的是,XOR加密速度更快。以下是一些资源: http://guymal.com/mycode/xor_js_encryption/ http://javascript.internet.com/passwords/xor-encryption4.html 希望你在努力做的事情上好运! |
![]() |
3
1
我正在搜索与您所做的完全相同的内容,并希望使用php的openssl函数。 我很高兴看到在phpside上,使用私钥/公钥(加密/解密)时一切都很好,现在我想找到一种在客户端使用私钥的方法。 !!! 如果您有任何发现,请通过电子邮件通知我: pki(at)生活。判定元件 !!! 至于性能方面: 您可以使用符号加密对大部分内容进行加密,只使用客户端的公钥对解密密钥进行加密。所以你不需要加密很多kb。 但firefox似乎是一条死胡同,而IE和ActiveX似乎有可能与firefox合作 CAPICOM(我现在没怎么读过)。 hxxp://geekswithblogs.net/shahed/archive/2007/05/03/112232.aspx 但是对于JavaScript/PHP,请看一下(并阅读FAQ和其他页面上的所有评论!将来可能会提到双向通信): hxxp://www.jcryption.org/ hxxp://www.zend.com//code/codex.php?ozid=1323&单个=1 纯Javascript公钥/私钥加密 hxxp://shop-js.sourceforge.net/crypto2.htm 用于PKI的helful FireFox插件: hxxps://addons.mozilla.org/en-US/firefox/addon/4471 hxxp://www.mozilla.org/projects/security/pki/nss/tools/index.html PHP与服务器端的OpenSSL/。客户端网络 hxxp://www.csharpbydesign.com/2008/04/asymmetric-key-encryption-with.html Javascript OpenPGP hxxp://www.hanewin.net/encrypt/ PS:愚蠢的机制阻止我发布链接。。。 |
![]() |
4
-1
在PHP中不处理SSL。SSL由web服务器自动处理。如果您使用的是Apache,这里有一个简单的教程: http://www.debian-administration.org/article/Setting_up_an_SSL_server_with_Apache2 我们的想法是,您可以像平常一样编写代码,当用户使用https访问您的站点时,服务器会自动加密连接。在客户端,浏览器能够使用私钥自动解密连接,并将代码呈现给用户代理。 希望这有帮助! |
![]() |
Jacco · 未能格式化我的日期以在php中正确工作 1 年前 |
![]() |
jay ram · 如何在URL核心php中从API获取JSON? 1 年前 |
|
Ishwarya A · php电子表格在浏览器中显示多张excel 1 年前 |