Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/410.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
web请求的javascript加密_Javascript_Encryption - Fatal编程技术网

web请求的javascript加密

web请求的javascript加密,javascript,encryption,Javascript,Encryption,我们有一个有趣的问题。我们有客户希望使用我们基于web的应用程序(后端/DB与我们同在)。然而,他们想要加密患者信息,所以我们公司的任何人都看不到。有没有什么javascript解决方案?或者在发送给我们之前使用他们的加密 有个问题。您希望如何在不知道如何实现的情况下实现en/解密?;) 一些简化的基本加密理论:(请记住,我也不是这方面的专家) 在今天的密码学中,我们主要使用两种不同类型的加密,要么是非对称的(Wikipedia:Public-key_cryptography),要么是对称的。你

我们有一个有趣的问题。我们有客户希望使用我们基于web的应用程序(后端/DB与我们同在)。然而,他们想要加密患者信息,所以我们公司的任何人都看不到。有没有什么javascript解决方案?或者在发送给我们之前使用他们的加密

有个问题。您希望如何在不知道如何实现的情况下实现en/解密?;)

一些简化的基本加密理论:(请记住,我也不是这方面的专家)

在今天的密码学中,我们主要使用两种不同类型的加密,要么是非对称的(Wikipedia:Public-key_cryptography),要么是对称的。你不需要知道他们实际上是如何加密数据的,但你需要知道的是它是基于给定的密钥/密码的。它们之间的区别在于,对称加密使用1种密钥进行加密和解密,而非对称加密使用2种密钥,但目前您不需要这些密钥

因此,有许多不同的加密算法以这种或那种方式进行加密,只要所使用的密钥足够强且随机,即使是一次野蛮的加密也能持续很多年,那么知道使用的是哪种算法就不成问题

根据使用的密钥,加密数据的输出将不同,因此带有密码“bar”的字符串“foo”与带有不同密码的相同文本(foo)不同。因此,在不知道使用了哪个键的情况下,不可能获得值

我从未在JS中使用过加密库,所以我不能向您推荐任何加密库,但我确信有很多加密库可以在几行中使用。基于对称加密的一个非常好的算法是AES,它也有很多现成的实现;)

因此,现在您只需在提交表单上添加一个按钮,要求密码进行加密,然后在查看/任何页面上添加一个按钮,希望使用密码对数据进行解密。发送时,您可以在未加密的数据密钥旁边发送加密的数据值(加密密钥!),这样您就知道哪个值是什么

这里是一个网站,你可以看到它的行动。请注意,密码稍有更改,加密值就完全不同。你也可以在那里找到一些代码。

我希望你能理解它,它不会太乱。我的英语不是很好,所以请原谅我糟糕的语法(x)

你可以(尽管在安全社区,这不是一个可行的解决方案)向他们发送javascript加密库,但它无法解决问题

注意:在这个回答中,我假设您的连接使用SSL/TLS,因为没有SSL/TLS,您无法安全地与客户端通信

问题是客户需要信任你。他们将从您的服务器下载javascript代码。因此,服务器的所有者将始终能够更改javascript的行为方式。这是因为,即使您向客户端发送一个完全有效且经过良好审核的javascript加密库,客户端也无法验证这一点。他们唯一能保证的是,他们从一台主机上得到了一些东西,他们的浏览器根据SSL/TLS证书选择信任该主机

通常情况下,人们会在这一点上提出一个居中的恶人。不过,这个问题很重要:要么您的连接通过SSL/TLS进行了适当的保护,要么没有。如果中间人的场景是可能的,那么客户端从服务器下载的javascript加密库也是可疑的。换句话说,如果SSL/TLS层以某种方式受到损害,那么客户端加密也应被视为受到损害

如果他们足够信任主机,相信他们不会篡改Java脚本,并且确实在客户端执行所有加密,那么他们也可以相信您不会在服务器端滥用他们的数据。这就省去了很多(不必要的)复杂性。复杂性越低,设置越干净,越容易审核



免责声明:如果您处理医疗数据,可能需要遵守相当多的法律(取决于您所在的国家/州)。如果您对这一级别的问题不满意,您可能应该雇佣一些专家,或者接受这一要求比您可以轻松构建的要求更复杂,并请告知您的客户,他们最好找到一家在处理敏感数据方面有更多经验的公司。

谢谢您的帮助。还是有点困惑,但也不是顶级加密明星。下面是确切的情况。我们有一个web应用程序(前端/后端)。他们希望使用此应用程序,但当他们填写患者表单并发送给我们时,我们会收到加密的患者信息。然后,我们将保存加密发送的表单值。当他们请求患者(例如编辑等)时,必须显示解密。前端属于我们,但我们不应该知道加密/解密是如何进行的。如果你有时间的话,你能给我一个详细的想法吗?我用更多的信息更新了我的帖子。请记住,Jacco主要讨论的是连接本身的安全性,您应该防御性地意识到这一点!在我的帖子中,你会发现许多可能的方法中的一种可以真正满足你客户的需求。你的解释非常完美。我得到了它!!非常感谢你,这正是我想要的!“使用未加密的数据密钥发送加密的数据值”-Sooo。。。发送明文?这个答案充满了不好的建议。我的评论与你的英语语言技能无关,不要把它看得太私人。在普通密钥旁边发送加密数据与发送明文是一样的,因为任何人都可以