Javascript进行表单RSA加密算法 3

本文介绍了一种使用PHP实现的安全登录验证方法,通过session ID和用户名的签名验证确保用户身份的真实性和唯一性。利用公钥验证cookie的有效性,防止恶意篡改。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最后是我的private.page  很简单

Check cookie: 如果cookie存在并且正确。那么进入private.page

Cookie的设计:session cookie。内容是用户名和系统的签名。

把session id 和用户名用系统的私钥加密 就是系统的签名, 用来认证是系统创建的,别人不能模仿。因为只有系统有自己的密钥。Sign<session id, username>

用发送过来的用户名加上现在的session id 来验证签名。check是否有人改过用户名。session id是否正确。

 

<?php
/*
CS683 Step 6
   Multi-user server:
   Private page:
   Check cookie
*/
//1. Get public key to verify the cookie.
$pubfile = file_get_contents('./public.pub');
$pubkey = openssl_pkey_get_public($pubfile);

/*2.If cookie not exist or is not correct. Go to login.php
  3.Check cookie.
*/
if (!isset($_COOKIE["username"])||!isset($_COOKIE["sign"]))
	header('Location:login.php');
else{
	$newsid = (string)session_id();
	$newcookie = $newsid.$_COOKIE["username"];
	$ok = openssl_verify($newcookie, $_COOKIE["sign"], $pubkey);
	if($ok)
	{
		echo "Hello ".$_COOKIE["username"]."! This is your private page!";
	}
	else
		echo "Error.";
}
	
?>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值