ID的URL加密

时间:2014-10-20 09:48:58

标签: javascript php security encryption

我想问一些关于加密和安全性观点的问题。基本上,我想加密我的URL以隐藏ID。告诉我哪种方法最好?我读过有关md5,SHA256,RSA加密的内容。

我想清楚一点,你告诉我的方法应该是JavaScript和php中的应用程序。

还有一个问题,Facebook,Instagram和Twitter使用哪种加密方法?请与我们分享一个验证链接,以确认其加密方法。

3 个答案:

答案 0 :(得分:0)

因此,如果我做对了,你想使用GET请求将秘密值发送到服务器 - 这些值将作为参数添加到URL中,并且您希望对它们进行加密以保护它们。

我不推荐这个。它(可能)涉及为最终用户提供一个包含加密算法的网页。攻击者可以在首次发送给您的最终用户时替换该页面,并将其修改为包含自己的代码 如果您坚持这样做,您可以使用任何加密算法(请注意,您提到的MD5和SHA256不是加密算法,而是加密哈希函数)。您可以使用RSA,但如果您能找到一种以安全的方式交换密钥的方法,那么像AES这样的对称算法会更快。

您应该做的是使用TLS或类似协议隐藏您的通信。通过这种方式,您可以使用几乎每台计算机都具有的内置加密技术 需要秘密通信的值可以通过POST请求发送。这具有额外的优势,可以更容易地保护您的系统免受重放攻击。

答案 1 :(得分:0)

  

基本上,我想对URL进行加密以隐藏ID。告诉我哪种方法是最好的?

人们在这里想要做什么

Some encryption function is used to deterministically retrieve the ID

人们应该怎么做

Use a separate column


使用random_bytes()bin2hex()base64_encode()中的一个。如果您使用Base64,则使字节数生成3的偶数倍(例如random_bytes(24)表示32个字符的字符串)。

您也可以像这样使用URL-safe base64

<?php
use ParagonIE\ConstantTime\Base64UrlSafe;

$token = Base64UrlSafe::encode(random_bytes(24));

但是加密只是the wrong tool for the job

答案 2 :(得分:-1)

这是您提到的加密,当您将密码保存到数据库时,出于PHP的安全原因使用加密。然后你可以使用这样的加密。它将原始文本转换为加密形式。更难以破解加密密码。出于安全原因,这是重要的技术。