我已经创建了一个登录系统。在检查登录的文件中,如果登录正确,那么它会重定向到配置文件页面,其中包含一个get语句:
http://yoursite.com/profile.php?username=md5(username)
在profile.php中,我想解码md5(用户名)并将其显示为WELCOME用户名。
任何解码md5()或任何其他方式来显示欢迎信息的建议。
答案 0 :(得分:3)
你可以把牛变成汉堡,但你不能把汉堡变成汉堡 牛。
摘要算法的目的是创建一个'散列',可以与另一个'散列'进行比较,以检查输入是否可能相同,而不会泄露实际输入。这就是为什么在数据库中经常使用哈希来存储密码的原因,因为有权访问数据库的人将无法计算出实际的密码。
如果您想确保安全地传达您的用户名和密码,请should use SSL在您的网站和用户之间建立安全连接。您的Web服务器将自动处理解密。
另外,请注意,不要使用MD5来散列密码,这是一种旧的易受攻击的算法。请查看PHP的password_hash函数。如果使用5.5之前的PHP,则ircmaxell具有ported this for you。
答案 1 :(得分:0)
你无法“解码”md5,因为md5是一个单向散列算法,它意味着给定一个输入它将生成一个输出。但如果只给出输出,则无法推断其输入。当然,这不是整个故事,但md5并不用于以这种方式传输数据。
您可能想要做的是一些基本的加密算法,如果它只是一个用户名,甚至只需要base64编码。但是你可以用明文传递它,并且没有安全隐患。
答案 2 :(得分:-1)
MD5是单向的!它无法解密。为什么不在会话中存储用户名:
$_SESSION['username'] = 'Adam' // Add username here.
然后在您的欢迎页面中,您可以检索它:
Welcome, <?php echo $_SESSION['username']; ?>!
在使用会话的任何页面上,您还需要将此作为顶部(在页面上输出任何内容之前):
session_start();