我想问一些关于加密和安全性观点的问题。基本上,我想加密我的URL以隐藏ID。告诉我哪种方法最好?我读过有关md5,SHA256,RSA加密的内容。
我想清楚一点,你告诉我的方法应该是JavaScript和php中的应用程序。
还有一个问题,Facebook,Instagram和Twitter使用哪种加密方法?请与我们分享一个验证链接,以确认其加密方法。
答案 0 :(得分:0)
因此,如果我做对了,你想使用GET请求将秘密值发送到服务器 - 这些值将作为参数添加到URL中,并且您希望对它们进行加密以保护它们。
我不推荐这个。它(可能)涉及为最终用户提供一个包含加密算法的网页。攻击者可以在首次发送给您的最终用户时替换该页面,并将其修改为包含自己的代码 如果您坚持这样做,您可以使用任何加密算法(请注意,您提到的MD5和SHA256不是加密算法,而是加密哈希函数)。您可以使用RSA,但如果您能找到一种以安全的方式交换密钥的方法,那么像AES这样的对称算法会更快。
您应该做的是使用TLS或类似协议隐藏您的通信。通过这种方式,您可以使用几乎每台计算机都具有的内置加密技术 需要秘密通信的值可以通过POST请求发送。这具有额外的优势,可以更容易地保护您的系统免受重放攻击。
答案 1 :(得分:0)
基本上,我想对URL进行加密以隐藏ID。告诉我哪种方法是最好的?
使用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的安全原因使用加密。然后你可以使用这样的加密。它将原始文本转换为加密形式。更难以破解加密密码。出于安全原因,这是重要的技术。