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