首页
留言板
统计
Search
1
阿里云国际OSS使用CloudFlare免流量
2,320 阅读
2
PP.UA免费域名注册
2,183 阅读
3
Adobe Photoshop CS2经典版 中文原版
2,174 阅读
4
7-Zip中文美化版
2,032 阅读
5
获取免费的 Microsoft 365 E5 开发人员订阅
1,948 阅读
软件分享
网络资源
网络代码
生活情感
免费主机
Search
标签搜索
工具软件
代码
Android
教程
Emlog
办公软件
图形图像
免费空间
Web
情感
PHP
视频
系统工具
Windows
上传下载
建站
PDF
网盘
Office
学习
ZJ
累计撰写
810
篇文章
累计收到
105
条评论
首页
栏目
软件分享
网络资源
网络代码
生活情感
免费主机
页面
留言板
统计
搜索到
810
篇与
的结果
2019-12-11
Office密码恢复 – Advanced Office Password Recovery(附序列号)
Advanced Office Password Recovery是一款针对 MS Office 系列的密码破解工具。Office密码恢复、替换、删除或绕过使用MicrosoftOffice应用程序创建的即时密码保护或锁定文档。软件提供了“暴力”和“字典”两种破解方式,如果时间足够加上破解策略得当,AOPR完全可以找回用户遗忘的文档密码。支持从 2.0 到 2016 的所有Microsoft Office版本,拥有多种攻击类型,并可自定义添加常用的字典文件用于字典攻击。使用方法:步骤一 字典模式破解1.打开AOPR软件。比如电脑中有一个Word文档,忘记了设置的密码,打不开了。我们双击桌面上的AOPR软件图标打开软件,软件主界面如下图所示,我们可以看到软件默认用“字典破解”法。2.打开文件。鼠标单击软件左上角的“打开文件”按钮,在弹出的对话框找到待破解的文件,单击打开,即可打开需要破解密码的文件。3.自动开始用字典模式破解(软件已经录入的一些常规密码,逐个尝试)。这时 Office密码破解工具会自动开始破解密码,先执行初步破解,如果密码设置简单,那么可以很快找到密码。但是大部分可能下是找不到密码的。步骤二 暴力破解1.进入暴力破解界面。由于上面的初步破解没有成功,所以要执行暴力破解,鼠标单击“暴力”选项,这里可以对密码长度、包含的字符集和起始密码进行设置,从而缩小密码范围,不然时间会很长。在进行暴力破解时可以有针对性地载入合适的字符集以获取更加迅速的破解性能,关于载入不同字符集的教程可参考:如何载入不同的Advanced Office Password Recovery字符集。图5:开始暴力破解步骤三 自定义字符范围1.如果以上方法都没有成功,我们可以大致确定密码的字符范围,自定义字符集。单击“定义自定义字符集”按钮,在弹出的对话框设置文本中的字符。图7:密码已恢复对话框以上就是给大家介绍的使用AOPR破解Word、Excel、PPT等Office文件密码的技巧,如果初步破解没有成功,则需要尝试下面的第二步、第三步,直至密码被恢复为止。提取码:隐藏内容,请前往内页查看详情下载地址 蓝奏网盘
2019年12月11日
749 阅读
1 评论
0 点赞
2019-12-10
PHP实现随机选取图像代码
创建images文件夹,把需要选取的图片复制到这个文件夹下,并随机挑选出一张显示出来。<?php $img_array = glob('images/*.{gif,jpg,png,jpeg,webp,bmp}', GLOB_BRACE); if(count($img_array) == 0) die('没找到图片文件。请先上传一些图片到 '.dirname(__FILE__).'/images/ 文件夹'); header('Content-Type: image/png'); echo(file_get_contents($img_array[array_rand($img_array)])); ?>
2019年12月10日
336 阅读
0 评论
0 点赞
2019-12-10
搭建一个属于自己的音乐平台
MKOnlineMusicPlayer是一款开源的基于Meting的在线音乐播放器。具有音乐搜索、播放、下载、歌词同步显示、个人网易云音乐播放列表同步等功能。前端界面参照 QQ 音乐网页版进行布局,同时采用了流行的响应式设计,无论是在PC端还是在手机端,均能给您带来原生app般的使用体验。运行环境:php 5.4+, curl_exec, file_get_contents, json_decode, openssl_encrypt
2019年12月10日
1,291 阅读
0 评论
0 点赞
2019-12-10
美化Emlog的文章访问密码页面
Emlog美化只能通过直接修改代码来实现,具体的位置在include/model/log_model.php文件末尾的authPassword代码。找到以下代码: if ($pwd !== addslashes($logPwd)) { echo <<<EOT <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>emlog message</title> <style type="text/css"> <!-- body{background-color:#F7F7F7;font-family: Arial;font-size: 12px;line-height:150%;} .main{background-color:#FFFFFF;margin-top:20px;font-size: 12px;color: #666666;width:580px;margin:10px 200px;padding:10px;list-style:none;border:#DFDFDF 1px solid;} --> </style> </head> <body> <div class="main"> <form action="" method="post"> 请输入该文章的访问密码<br> <input type="password" name="logpwd" /><input type="submit" value="进入.." /> <br /><br /><a href="$url">«返回首页</a> </form> </div> </body> </html> EOT; if ($cookiePwd) { setcookie('em_logpwd_' . $logid, ' ', time() - 31536000); }替换为如下代码: if ($pwd !== addslashes($logPwd)) { ?> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="renderer" content="webkit"> <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no"> <title>该文章已被加密</title> </head> <body> <div class="main"> <img class="alert" alt="文章已被加密" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIoAAACACAMAAADjwgEwAAAAOVBMVEUAAAD5dBr7dRj4dBn/cBD5cxr4cxn6chj7dBj/cBj5cxr5dBn6cxn4dBn5cxr6dRX5cxr5cxr5dBoQJfbPAAAAEnRSTlMAgD/AEPDgYEAgoLCQcFAw0J/MNdW8AAADg0lEQVR42s3b7W7iMBSEYWftxA75At//xW7VZRWnQ3WkvOKE+VmJMtjxg8Ek4Iy5e8zdmsLFSXmoz8QSrsw61CZxDJdlrsf0OVyUR5WALrDJh3SZ68uswT1rfZ3e/dpNff0lMTjnVr/yEVO01SZdWae6Z/CFNzYXxxa+kttqwTHl2ORHl95zWBrvl/BMM0e34JZ8XC+6phwWtD7ptv95uWBBdzIVMm0luGTshVYB+B5ccvt12Ubnt8Xt91Vb3JyzX/rk5Jy+cr2M3Jyzl8nMnOO6Bewc103TMee4btw5rpsmA+e4bm7O2boh57huS9twyaODc7Zu43fBR3J1bni1q0/Pv0bgHNNNl3cGzgHdyouhmqBzXLf9SZ2c01HXKsA5pptWcXJOV6hWAc5R3bQKcI7qplUcnLs3uhlV1Ln5bboZVd7rXGqdMKuoQ9ObdDOqAOeAbkYVY0fOdTOqAOeAblLFEOAdutlVbOe4bmYV4BzQzahiOId104DPrVw3uwp3zv5fdhXgHNDNqAKcs3Sbw4kqhnNAN7vK25yLhlFGFcM5pJtdBTtn65ZPVDGcY7rZVbhzpgmgitgEdQNV5DUx3UAV5pxebaCKOMd0A1WYcyoTqKJWIt1AFeSczi6rou+rQDdQBTmnEoAqzLn9cfvjYBXdmQLdQBXgnOrGq+j7PNANVAHOiW6gCnBO2idQBTunuvEqtnPoxE2rgJXJdNMqyCt8OqsnH8A5NoZ6HgScoyf5+ykZ+raGr7f97PCWwD4I6iYnquCbPa4b/0aA6OZwgo9/NwV2IEC3950YeP7GTp1DuhkBzpkDx2M7x3XTAOfMRWZn7OJwn5YETjCQbjqtw8qc47o95GHAOaTbUptswDmkm/6aPwLnsG65HpKQc/rqtvP3fRTgHNUt1kM67tx49u6RqR6SgXNIt30097mlzpXT5G+1zQD2c3zvFmV+kHM6aedgieDBz2GZyN5t2+87TGQ/131PGdu7pa7/Hs/M9nPDD2i3cCqllA3s5/bnjqKbY4bDDLXFQOiwxJaGe/BP2gcihCLQuiZKlV1f58zNDmr9lNtLSyg+C8jeKrSXbX/pCqqHxdyvwTO6j53qnvu8/nFLfgz1uGXJ9SMy/sP3A3J7fhq7Pv34f21fnkUWt3eUtDTVSzPL1u6SKGfjrV6TvtM98bhccMlMOYWXSWXpHJNLaPMXZ8oyOMxlLIsAAAAASUVORK5CYII="> <form action="" method="post" class="mk-side-form"> <h2 class="pw-tip">该文章已被加密</h2> <input type="password" name="logpwd" placeholder="请输入访问密码查看" required><button type="submit">提交</button> <?php if($postPwd): ?> <p id="pw-error">Oops!密码不对哦~</p> <script>setTimeout(function() {document.getElementById("pw-error").style.display = "none"}, 2000);</script> <?php endif; ?> </form> <a href="<?php echo $url; ?>" class="return-home" title="点击回到网站首页">- 返回首页 - </a> </div> <style type="text/css"> *{font-family:"Microsoft Yahei",微软雅黑,"Helvetica Neue",Helvetica,"Hiragino Sans GB","WenQuanYi Micro Hei",sans-serif;box-sizing:border-box;margin:0px;padding:0px;font-size:14px;-webkit-transition:.2s;-moz-transition:.2s;-ms-transition:.2s;-o-transition:.2s;transition:.2s} html,body{width:100%;height:100%} body{background-color:#F4F6F9;color:#768093} input,button{font-size:1em;border-radius:3px;-webkit-appearance:none} input{width:100%;padding:5px;box-sizing:border-box;border:1px solid #e5e9ef;background-color:#f4f5f7;resize:vertical} input:focus{background-color:#fff;outline:none} button{border:0;background:#6abd09;color:#fff;cursor:pointer;opacity:1;user-select:none} button:hover,button:focus{opacity:.9} button:active{opacity:1} .main{width:100%;max-width:500px;height:300px;padding:30px;background-color:#fff;border-radius:2px;box-shadow:0 10px 60px 0 rgba(29,29,31,0.09);transition:all .12s ease-out;position:absolute;left:0;top:0;bottom:0;right:0;margin:auto;text-align:center} .alert{width:80px} .mk-side-form{margin-bottom:28px} .mk-side-form input{float:left;padding:2px 10px;width:77%;height:37px;border:1px solid #ebebeb;border-right-color:transparent;border-radius:2px 0 0 2px;line-height:37px} .mk-side-form button{position:relative;overflow:visible;width:23%;height:37px;border-radius:0 2px 2px 0;text-transform:uppercase} .pw-tip{font-weight:normal;font-size:26px;text-align:center;margin:25px auto} #pw-error {color: red;margin-top: 15px;margin-bottom: -20px;} .return-home{text-decoration:none;color:#b1b1b1;font-size:16px} .return-home:hover{color:#1E9FFF;letter-spacing:5px} </style> </body> </html> <?php if ($cookiePwd) { setcookie('em_logpwd_' . $logid, ' ', time() - 31536000); }
2019年12月10日
283 阅读
0 评论
0 点赞
2019-12-10
基于本地数据库的IP地址查询
今天来分享一个基于本地数据库的IP地址查询PHP源码:<?php /** * 纯真 IP 数据库查询 * * 参考资料: * - 纯真 IP 数据库 http://www.cz88.net/ip/ * - PHP 读取纯真IP地址数据库 http://ju.outofmemory.cn/entry/42500 * - 纯真 IP 数据库自动更新文件教程 https://www.22vd.com/40035.html * - IpLocation https://github.com/nauxliu/IpLocation/ * - 基于本地数据库的 IP 地址查询 PHP 源码 https://mkblog.cn/?p=1951 * * 使用示例: * $ip = new IPQuery(); * $addr = $ip->query('IP地址'); * print_r($addr); */ class IPQuery { private $fh; // IP数据库文件句柄 private $first; // 第一条索引 private $last; // 最后一条索引 private $total; // 索引总数 private $dbFile = __DIR__ . DIRECTORY_SEPARATOR . 'qqwry.dat'; // 纯真 IP 数据库文件存放路径 private $dbExpires = 86400 * 10; // 数据库文件有效期(10天)如无需自动更新 IP 数据库,请将此值改为 0 // 构造函数 function __construct() { // IP 数据库文件不存在或已过期,则自动获取 if(!file_exists($this->dbFile) || ($this->dbExpires && ((time() - filemtime($this->dbFile)) > $this->dbExpires))) { $this->update(); } } // 忽略超时 private function ignore_timeout() { @ignore_user_abort(true); @ini_set('max_execution_time', 48 * 60 * 60); @set_time_limit(48 * 60 * 60); // set_time_limit(0) 2day @ini_set('memory_limit', '4000M');// 4G; } // 读取little-endian编码的4个字节转化为长整型数 private function getLong4() { $result = unpack('Vlong', fread($this->fh, 4)); return $result['long']; } // 读取little-endian编码的3个字节转化为长整型数 private function getLong3() { $result = unpack('Vlong', fread($this->fh, 3).chr(0)); return $result['long']; } // 查询位置信息 private function getPos($data = '') { $char = fread($this->fh, 1); while (ord($char) != 0) { // 地区信息以 0 结束 $data .= $char; $char = fread($this->fh, 1); } return $data; } // 查询运营商 private function getISP() { $byte = fread($this->fh, 1); // 标志字节 switch (ord($byte)) { case 0: $area = ''; break; // 没有相关信息 case 1: // 被重定向 fseek($this->fh, $this->getLong3()); $area = $this->getPos(); break; case 2: // 被重定向 fseek($this->fh, $this->getLong3()); $area = $this->getPos(); break; default: $area = $this->getPos($byte); break; // 没有被重定向 } return $area; } // 检查 IP 格式是否正确 public function checkIp($ip) { $arr = explode('.', $ip); if(count($arr) != 4) return false; for ($i = 0; $i < 4; $i++) { if ($arr[$i] < '0' || $arr[$i] > '255') { return false; } } return true; } // 查询 IP 地址 public function query($ip) { if(!$this->checkIp($ip)) { return false; } $this->fh = fopen($this->dbFile, 'rb'); $this->first = $this->getLong4(); $this->last = $this->getLong4(); $this->total = ($this->last - $this->first) / 7; // 每条索引7字节 $ip = pack('N', intval(ip2long($ip))); // 二分查找 IP 位置 $l = 0; $r = $this->total; while($l <= $r) { $m = floor(($l + $r) / 2); // 计算中间索引 fseek($this->fh, $this->first + $m * 7); $beginip = strrev(fread($this->fh, 4)); // 中间索引的开始IP地址 fseek($this->fh, $this->getLong3()); $endip = strrev(fread($this->fh, 4)); // 中间索引的结束IP地址 if ($ip < $beginip) { // 用户的IP小于中间索引的开始IP地址时 $r = $m - 1; } else { if ($ip > $endip) { // 用户的IP大于中间索引的结束IP地址时 $l = $m + 1; } else { // 用户IP在中间索引的IP范围内时 $findip = $this->first + $m * 7; break; } } } // 查找 IP 地址段 fseek($this->fh, $findip); $location['beginip'] = long2ip($this->getLong4()); // 用户IP所在范围的开始地址 $offset = $this->getlong3(); fseek($this->fh, $offset); $location['endip'] = long2ip($this->getLong4()); // 用户IP所在范围的结束地址 // 查找 IP 信息 $byte = fread($this->fh, 1); // 标志字节 switch (ord($byte)) { case 1: // 都被重定向 $countryOffset = $this->getLong3(); // 重定向地址 fseek($this->fh, $countryOffset); $byte = fread($this->fh, 1); // 标志字节 switch (ord($byte)) { case 2: // 信息被二次重定向 fseek($this->fh, $this->getLong3()); $location['pos'] = $this->getPos(); fseek($this->fh, $countryOffset + 4); $location['isp'] = $this->getISP(); break; default: // 信息没有被二次重定向 $location['pos'] = $this->getPos($byte); $location['isp'] = $this->getISP(); break; } break; case 2: // 信息被重定向 fseek($this->fh, $this->getLong3()); $location['pos'] = $this->getPos(); fseek($this->fh, $offset + 8); $location['isp'] = $this->getISP(); break; default: // 信息没有被重定向 $location['pos'] = $this->getPos($byte); $location['isp'] = $this->getISP(); break; } // 信息转码处理 foreach ($location as $k => $v) { $location[$k] = iconv('gb2312', 'utf-8', $v); $location[$k] = preg_replace(array('/^.*CZ88\.NET.*$/isU', '/^.*纯真.*$/isU', '/^.*日IP数据/'), '', $location[$k]); $location[$k] = htmlspecialchars($location[$k]); } return $location; } // 更新数据库 https://www.22vd.com/40035.html public function update() { $this->ignore_timeout(); $copywrite = file_get_contents('http://update.cz88.net/ip/copywrite.rar'); $qqwry = file_get_contents('http://update.cz88.net/ip/qqwry.rar'); $key = unpack('V6', $copywrite)[6]; for($i = 0; $i < 0x200; $i++) { $key *= 0x805; $key ++; $key = $key & 0xFF; $qqwry[$i] = chr(ord($qqwry[$i]) ^ $key); } $qqwry = gzuncompress($qqwry); file_put_contents($this->dbFile, $qqwry); } // 析构函数 function __destruct() { if($this->fh) { fclose($this->fh); } $this->fp = null; } }使用方法将上面的模块代码保存为 IPQuery.class.php,然后按照如下方法调用即可:<?php require_once('IPQuery.class.php'); $ip = new IPQuery(); $addr = $ip->query('123.233.233.233'); echo "<pre> IP起始段:{$addr['beginip']} IP结束段:{$addr['endip']} 实际地址:{$addr['pos']} 运 营 商:{$addr['isp']} </pre>";注:本模块会在第一次被调用时自动从纯真网下载最新的 IP 数据库到本地,因此第一次进行查询时会有点慢。
2019年12月10日
301 阅读
0 评论
0 点赞
2019-12-10
11VM Serv 100M-1G免费托管
11VM Serv成立于2002年,是一个自我管理的主机,经过15多年的项目开发,合作伙伴关系,研究和发展,11VM Serv能够在保持今天的状态下进行开发,他的出发哲学。多年来,11VM Serv得到了多家技术或财务合作伙伴的支持和支持。11VM Serv是提供高质量托管服务的替代主机,主要提供免费的教育,社会,研究,技术和免费领域的可用项目。11VM Serv自2002年以来,提供免费和无广告的托管解决方案。申请地址:https://www.11vm-serv.net
2019年12月10日
307 阅读
0 评论
0 点赞
2019-12-10
PHP简单实现一言随机一句功能
首先新建一个php文件,命名为api.php,再新建一个文件,命名为data.dat(两个文件均需采用 UTF-8 编码,否则会乱码)。打开 data.dat,在里面贴入要随机显示出来的文本,一行一条。将下列代码复制并粘贴到api.php中保存,你的专属“一言” API就搭建完成了!fopen + fgets 函数实现代码<?php // 存储数据的文件 $filename = 'data.dat'; // 指定页面编码 header('Content-type: text/html; charset=utf-8'); if(!file_exists($filename)) { die($filename . ' 数据文件不存在'); } $data = array(); // 打开文档 $fh = fopen($filename, 'r'); // 逐行读取并存入数组中 while (!feof($fh)) { $data[] = fgets($fh); } // 关闭文档 fclose($fh); // 随机获取一行索引 $result = $data[array_rand($data)]; echo $result;file_get_contents 函数实现代码<?php // 存储数据的文件 $filename = 'data.dat'; // 指定页面编码 header('Content-type: text/html; charset=utf-8'); if(!file_exists($filename)) { die($filename . ' 数据文件不存在'); } // 读取整个数据文件 $data = file_get_contents($filename); // 按换行符分割成数组 $data = explode(PHP_EOL, $data); // 随机获取一行索引 $result = $data[array_rand($data)]; // 去除多余的换行符(保险起见) $result = str_replace(array("\r","\n","\r\n"), '', $result); echo $result;如何在静态页面中引用上面的代码都是直接在页面中就输出了随机的句子。如果想像一言那样在静态的网页中引用这个api,将最后那一行的 echo $result; 换成:echo 'document.write("'.htmlspecialchars($result).'");';然后在需要的位置进行调用即可。代码:<script src="http://你的网址/api.php"></script>
2019年12月10日
272 阅读
0 评论
0 点赞
2019-12-10
Linux宝塔面板免费版开启waf防火墙的方法
宝塔面板在 6.x 之前的版本中自带了 Nginx 防火墙功能(Nginx管理 > 过滤器),到了 6.x 之后,为了推行收费版的防火墙插件,宝塔官方把这个免费的防火墙入口给隐藏了。今天,就来说说如何开启这个隐藏的 Nginx 防火墙!警告:以下内容在改动前一定要备份原文件!1、进入宝塔面板,打开 软件管理 > Nginx > 设置 > 配置修改;2、找到大约在第 13 行的 #include luawaf.conf;,去掉前面的 # 符号(“#”代表注释),保存并重启 Nginx。3、恭喜你,已经成功开启了防火墙!可以试着访问 http://你的网址/?id=../etc/passwd,页面会弹出拦截提示,如下图:怎么自定义这个防火墙的防护规则呢?打开面板的文件管理,进入 /www/server/nginx/waf 目录,里面的 config.lua 文件就是防火墙的配置文件。每一项的具体含义如下所示:RulePath = "/www/server/panel/vhost/wafconf/" --waf 详细规则存放目录(一般无需修改) attacklog = "on" --是否开启攻击日志记录(on 代表开启,off 代表关闭。下同) logdir = "/www/wwwlogs/waf/" --攻击日志文件存放目录(一般无需修改) UrlDeny="on" --是否开启恶意 url 拦截 Redirect="on" --拦截后是否重定向 CookieMatch="off" --是否开启恶意 Cookie 拦截 postMatch="off" --是否开启 POST 攻击拦截 whiteModule="on" --是否开启 url 白名单 black_fileExt={"php","jsp"} --文件后缀名上传黑名单,如有多个则用英文逗号分隔。如:{"后缀名1","后缀名2","后缀名3"……} ipWhitelist={"127.0.0.1"} --白名单 IP,如有多个则用英文逗号分隔。如:{"127.0.0.1","127.0.0.2","127.0.0.3"……} 下同 ipBlocklist={"1.0.0.1"} --黑名单 IP CCDeny="off" --是否开启 CC 攻击拦截 CCrate="300/60" --CC 攻击拦截阈值,单位为秒。"300/60" 代表 60 秒内如果同一个 IP 访问了 300 次则拉黑配置文件中,RulePath 项对应的文件夹里存放的是具体的拦截规则。打开这个文件夹,可以看到里面有一些无后缀名的规则文件。其中每一个文件的作用如下:args --GET 参数拦截规则 blockip --无作用 cookie --Cookie 拦截规则 denycc --无作用 post --POST 参数拦截规则 returnhtml --被拦截后的提示页面(HTML) url --url 拦截规则 user-agent --UA 拦截规则 whiteip --无作用 whiteurl --白名单网址这些文件里,除了 returnhtml(拦截提示页面)以外,其它的内容都最好不要改动。如果改动了其中的内容,重启 Nginx 。
2019年12月10日
317 阅读
0 评论
0 点赞
1
...
80
81
82
...
102