对称加密
2021/4/27 18:59:51
本文主要是介绍对称加密,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
<?php /** * client * rsa aes md5签名 * @author v_fanyinggang(v_fanyinggang@baidu.com) */ $serect = '范英刚'; $appkey = '1248995523'; //url $url = "127.0.0.1?"; //参数 $params = array(); $params['appkey'] = $appkey; $params['name'] = 'shiyi'; $params['password'] = 'fyg666666'; $params['time'] = time(); //http请求参 $queryString = http_build_query($params); //获取签名 $sign = getSign($params, $serect); //拼接签名 $queryString .= "&sign=".$sign; //公钥加密 $public = '-----BEGIN PUBLIC KEY----- MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAqqbyZuhT9dm84krq2lWt 76P82FQjBuGCNJtY7tgmdzW3iM2ixvH+fid0K4jx/0SbaBgH5dZiWYeaHthHuw1Z CNNSrF/sT2Sc7gfUnroWZIJ8tbTEfNC+GUz/OCVoug2cP6pfWH/dttWfxBflcJ6o uMv8ZygdfFeWKbwd5fucOAh8hg1EZlk3JVC5YcusHJalpFMYspBByGvW3hbXcqUK jURNTgUjE3OpQ6N97EKJBC1cygJ0/8ifjQsCGYbxx1L4E//JkB4KVXGcyU6UNt9g AYNd8L53svAG/DIzlxbbkW3veKc/jbOfY2HdcLOZN4BW9pQ9jlvlUshV2unA4UVK DMG5bHJpU1z0/hv0QDAQwdihV88iLoYjEsW4jGJEVEtJuPRNsIK9GR2gbp4tAGGI 2ZbrW/W6f/fXRQffHY8MA5+s0mrsq+a11IXVCFytYCsi10kNRhdUny9MamUkNCAB mfhR1jadJbpqOMyjAob0sezCa1E24KvCp+FXBG3TwTy2xoZ+SRpzrwWrPsAkZVSu H5wCS3/4kEdvcgpEdfdok5aGIqKdgeCr9BsorqQXsB0SWY3Z1dnz9UlVqzFBZWs7 eXq02ukI730PN0MDb3wNBwBQ9kD0/1rVCYURLaJMTLpBGXei9jYNdLut0k84zBc/ 80KedIhDjUQN9rtiIqLnwqsCAwEAAQ== -----END PUBLIC KEY-----'; $encrypt = ""; openssl_public_encrypt($queryString, $encrypt, $public); $encrypt = urlencode($encrypt); //拼接url $url .= "query=".$encrypt; var_dump($url); /** * 签名生成 * @param $params * @param $serect * @return string */ function getSign($params, $serect) { //字典序 ksort($params); //参数拼接 $query = http_build_query($params).$serect; return md5($query); }
<?php /** * serivce * @author v_fanyinggang(v_fanyinggang@baidu.com) */ $private = '-----BEGIN PRIVATE KEY----- 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 UghFfeR6cgvGR+M6+xYoyWkMi8YC -----END PRIVATE KEY-----'; //接收到请求参数 $query = $argv[1]; $query = urldecode($query); //解密后的数据 $decrypt = ''; openssl_private_decrypt($query, $decrypt, $private); //参数分割为数组 $params = []; parse_str($decrypt, $params); //验证签名 $sign = getSign($params); if ($sign != $params['sign']) { throw new Exception('签名错误', 2001); } if (time() - $params['time'] > 600) { throw new Exception('请求超时', 4001); } echo "success"; /** * 获取签名 * * @param $params * @return string */ function getSign($params) { $token = [ '1248995523' => '范英刚', ]; // 移除sign unset($params['sign']); //字典序 ksort($params); //参数 $query = http_build_query($params).$token[$params['appkey']]; return md5($query); }
这篇关于对称加密的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-06-26结对编程到底难不难?答案在这里
- 2024-06-19《2023版Java工程师》课程升级公告
- 2024-06-15matplotlib作图不显示3D图,怎么办?
- 2024-06-1503-Loki 日志监控
- 2024-06-1504-让LLM理解知识 -Prompt
- 2024-06-05做软件测试需要懂代码吗?
- 2024-06-0514-ShardingSphere的分布式主键实现
- 2024-06-03为什么以及如何要进行架构设计权衡?
- 2024-05-31全网首发第二弹!软考2024年5月《软件设计师》真题+解析+答案!(11-20题)
- 2024-05-31全网首发!软考2024年5月《软件设计师》真题+解析+答案!(21-30题)