2017-03-08 21 views
-1

我正在开发一个安全门户项目Php codeignitor。我需要知道URL的加密,其中的URL在页面源中完全可见,其中的URL为<a> tag。我非常清楚php中的urlencode函数。我不想使用它,因为它也可以解码。所以我想解决的东西看起来像下面URL加密<a>在php中标记

而是通常的方式

<a href="https://somedomain.com/path1/path2">....</a> 

我想是这样的

<a href="xWAYK4rT3D9VBsheGElFZXtoL5zkfQ">....</a> 

我已经看到了这种加密技术即使它被加密,它也会导航到当前页面。

+0

你如何处理SEO?如果你的网页没有任何友好的网址? –

+2

更好的解决方案,保护您的代码不是url .. –

+0

@SRana感谢您的关注,但我不需要搜索引擎优化,就像我在第一个问题中提到的那样,它的安全门户网站并非商业产品,而是用于某些企业关心的内部服务。 – Kathirmalan

回答

0

你不能让链接本身“xWAYK4rT3D9VBsheGElFZXtoL5zkfQ”,最好加独特生成的令牌与您的网址:HREF =“https://somedomain.com/xWAYK4rT3D9VBsheGElFZXtoL5zkfQ” 使用自己的令牌生成的代码,它可以加密和解密。

$ key = pack('H *',“bcb04b7e103a0cd8b54763051cef08bc55abe029fdebae5e1d417e2ffb2a00a3”);

$ codeAlpha =“ABCDEFGHIJKLMNOPQRSTUVWXYZ”;

$ codeAlphabet。=“abcdefghijklmnopqrstuvwxyz”;

$ encrypted_string = mcrypt_encrypt($ key,$ codeAlphabet,...);

$ decrypted_string = mcrypt_decrypt($ key,$ codeAlphabet,..);

+1

我认为这是正确的答案。要记住的事情(正如其他人已经指出的),浏览器可以解密的任何东西都可以解密。如果OP解释为什么他想隐藏URL,特别是为什么隐藏域是很重要的,这将会很有帮助。 (这让我怀疑OP的意图。)但是,如果显示域名是完全正确的,那么在SERVER上加密URL的其余部分,然后发回该令牌以在服务器上解密是一条可行的路。 – Jerry