仅使用javascript在URL中生成短消息加密

仅使用javascript在URL中生成短消息加密,javascript,security,encryption,Javascript,Security,Encryption,我想向你们提出一个想法,我认为这可能有助于保护普通用户的隐私。如果您对此有任何意见或建议,我将不胜感激 我已经挣扎了很长一段时间,需要一个简单的工具,我可以与我的联系人共享和使用,他们只是普通用户,对任何加密技术或当前可用的工具都不熟悉 我计划创建一个解决方案,在这个解决方案中,人们可以用一个密码轻松地加密文本消息或文件,然后通过电子邮件、聊天或任何渠道将其发送给其他人。该解决方案应完全独立于平台且可用,无需安装任何额外软件 有一些文本加密网站完全从JavaScript运行客户端加密。我发现这种

我想向你们提出一个想法,我认为这可能有助于保护普通用户的隐私。如果您对此有任何意见或建议,我将不胜感激

我已经挣扎了很长一段时间,需要一个简单的工具,我可以与我的联系人共享和使用,他们只是普通用户,对任何加密技术或当前可用的工具都不熟悉

我计划创建一个解决方案,在这个解决方案中,人们可以用一个密码轻松地加密文本消息或文件,然后通过电子邮件、聊天或任何渠道将其发送给其他人。该解决方案应完全独立于平台且可用,无需安装任何额外软件

有一些文本加密网站完全从JavaScript运行客户端加密。我发现这种方法目前是唯一可能的解决办法。此外,JS的LIB已经实现了加密:

尽管上述方法将消息存储在其服务器上,但要求您和您的联系人完全信任它。因为服务器在用户收到消息后,可能会在访问时向用户提供不同的JS代码,这是通过强化密码来泄露秘密的

虽然许多人认为在JS中做任何关于加密任务的事情都不是一个好主意,但我相信需要一个真正独立于平台(可以在任何平板电脑或PC上使用)并且仍然非常容易使用的工具。这背后的想法是,我相信有东西总比没有好。几十年来,用我们目前的技术以纯文本的形式通过电子邮件发送信息在大多数情况下都是错误的。有时我们确实需要通过电子邮件共享敏感信息,而对方可能拥有任何类型的系统

出于以下原因,我打算避免使用公钥加密: -设置非常复杂,包括对彼此的密钥进行签名 -使用起来很复杂 -用户可以松开他的钥匙 -大多数情况下,还需要使用和安装外部软件 -一个单一的密码可以很容易地与我的联系人共享一次,他或她可以随时将其写在纸上

我提出的解决方案可能是:

首先,浏览器及其下的操作系统应被视为可信的

将有一个带有嵌入式JavaScript的静态index.html页面。该页面显示消息的文本区域和密码的文本框。当按下enter键时,JS代码生成一个URL,该URL本身将包含base64编码的加密消息。挖掘之后,我发现在任何情况下,URL都可以使用2000个字节,所以对于短消息来说,1600或800个字符就足够了。这仍然需要计划

因此,加密消息将与URL一起传输。提供index.html服务的网站当然会使用带有有效证书的SSL。虽然这看起来很容易,但事实并非如此。应该仔细创建JS实现,以避免对其进行简单的攻击

(也可以使用URL缩短服务)

此外,问题是:我如何确保我的联系人能够确定我的信息来源

那么,另一方必须检查域名是否正确。除此之外,实现必须避免其余的攻击。如果URL在电子邮件传输过程中发生更改,则另一方将无法使用密码对邮件进行解码。这就是我所相信的。它可以通过这种方式实现

关于文件共享。解决方案应该能够浏览文件,然后对其进行加密,然后将其下载给用户。这只是为了让他能够创建文件的加密形式,而不需要外部工具。然后,他可以将其上传到他选择的任何位置的云上(谷歌硬盘、Skydrive等),并使用JS解决方案URL中的链接将其发送给他的联系人

因此,如果另一个链接与该链接一起移动,那么来自远程主机的文件将被下载、解密并发送下载。都在他的浏览器里。如果它是base64格式的加密消息,那么在解密后(当然是由提供密码的用户)它会打印在页面上

与其他解决方案相比的优点: -无需实现存储,因为服务器上不会存储任何消息或文件,因此可以使用大型玩家的服务 -因此,无需就存储问题重新安装车轮 -不需要信任第三方,因为服务器很容易成为我们的,因为安装和服务它非常容易 -即使是免费的提供者也可以轻松地托管static index.html -由于其简单性,服务器可以更好地加固 -易于在实践中使用它进行加密 -如果需要的话,他也可以通过在桌面上点击index.html来使用它,但这不是最初想法的一部分

我向大家提出的问题是:

你发现我上面的理论有什么缺陷吗?当普通人确实需要向他人发送敏感信息时,这真的能为他们提供一个有用的工具吗

或者类似的事情还存在吗?有没有更好的办法?也许是不同的技术


谢谢。

我如何将密码发送给收件人?您所说的一些内容与mega.co.nz的运作方式类似,但您的建议中存在不少缺陷,因为密码术很难正确,就像博士学位一样。顺便说一句,试着把这篇文章发到INSTEADALL:有趣的是,你说你不想使用公钥加密。为什么不想办法简化签名过程呢。这样,你就可以添加和建立现有的坚实基础,而不是试图再次解决同样的问题。我把密码发给我的联系人。