1<?php class=class="string">"keyword">header(class="string">'Content-Type: text/html; charset=utf-class="number">8'); ?>
2<!DOCTYPE html><class="tag">html lang="zh-CN"><class="tag">head><class="tag">meta charset="UTF-class="number">8"><class="tag">meta name="viewport" content="width=device-width,initial-scale=class="number">1.0">
3<class="tag">title>随机密码生成器 - η空间</class="tag">title>
4<class="tag">meta name="description" content="在线随机密码生成器,自定义长度和字符类型,含密码强度检测。本地生成,不上传。">
5<class="tag">link rel="stylesheet" href="/tools/share.css"><class="tag">link rel="stylesheet" href="/assets/pet-cat.css">
6<class="tag">style>
7*{margin:class="number">0;padding:class="number">0;box-sizing:border-box}
8body{font-family:class="string">'Outfit',-apple-system,sans-serif;background:class=class="string">"keyword">class=class="string">"comment">#0C0C0C;color:#F7F5F0;min-height:100vh}
9.container{max-width:500px;margin:class="number">0 auto;padding:40px 16px}
10h1{text-align:center;font-size:24px;margin-bottom:8px}
11h1 .a{color:class=class="string">"keyword">class=class="string">"comment">#FF6B35}
12p.desc{text-align:center;color:class=class="string">"keyword">class=class="string">"comment">#class="number">888;font-size:13px;margin-bottom:30px}
13.card{background:class=class="string">"keyword">class=class="string">"comment">#class="number">161616;border:1px solid #class="number">222;border-radius:16px;padding:24px;margin-bottom:16px}
14.result-box{background:class=class="string">"keyword">class=class="string">"comment">#0C0C0C;border:1px solid #class="number">333;border-radius:10px;padding:14px 16px;font-family:class="string">'JetBrains Mono',monospace;font-size:18px;word-class=class="string">"keyword">break:class=class="string">"keyword">break-all;margin-bottom:14px;min-height:50px;display:flex;align-items:center;color:#4ade80;user-select:all}
15.strength-bar{height:4px;background:class=class="string">"keyword">class=class="string">"comment">#class="number">222;border-radius:2px;margin-bottom:16px;overflow:hidden}
16.strength-fill{height:class="number">100%;border-radius:2px;transition:all .3s;width:class="number">0}
17.controls label{display:block;font-size:13px;color:class=class="string">"keyword">class=class="string">"comment">#aaa;margin-bottom:4px}
18.controls input[type=range]{width:class="number">100%;margin-bottom:14px;-webkit-appearance:none;background:class=class="string">"keyword">class=class="string">"comment">#class="number">222;height:4px;border-radius:2px;outline:none}
19.controls input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;background:class=class="string">"keyword">class=class="string">"comment">#FF6B35;border-radius:class="number">50%;cursor:pointer}
20.controls .val{float:right;font-size:13px;color:class=class="string">"keyword">class=class="string">"comment">#FF6B35;font-weight:class="number">600}
21.check-group{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:16px}
22.check-group label{display:flex;align-items:center;gap:8px;font-size:13px;color:class=class="string">"keyword">class=class="string">"comment">#ccc;cursor:pointer;padding:8px 10px;background:#0C0C0C;border-radius:8px;border:1px solid #class="number">222;transition:all .2s}
23.check-group label:hover{border-color:class=class="string">"keyword">class=class="string">"comment">#class="number">444}
24.check-group input[type=checkbox]{accent-color:class=class="string">"keyword">class=class="string">"comment">#FF6B35;width:16px;height:16px}
25.btn{display:block;width:class="number">100%;padding:12px;border:none;border-radius:10px;font-size:15px;font-weight:class="number">600;cursor:pointer;transition:all .3s;margin-bottom:8px}
26.btn-primary{background:class=class="string">"keyword">class=class="string">"comment">#FF6B35;color:#fff}
27.btn-primary:hover{background:class=class="string">"keyword">class=class="string">"comment">#e85a2a}
28.btn-outline{background:transparent;border:1px solid class=class="string">"keyword">class=class="string">"comment">#class="number">333;color:#ccc}
29.btn-outline:hover{border-color:class=class="string">"keyword">class=class="string">"comment">#FF6B35;color:#FF6B35}
30.length-display{text-align:center;font-size:13px;color:class=class="string">"keyword">class=class="string">"comment">#class="number">888;margin-bottom:4px}
31</class="tag">style></class="tag">head><class="tag">body>
32<class="tag">div class=class="string">"keyword">class="container">
33<class="tag">h1><class="tag">span class=class="string">"keyword">class="a">class=class="string">"keyword">class=class="string">"comment">#</class="tag">span> 随机密码</class="tag">h1>
34<class="tag">p class=class="string">"keyword">class="desc">本地生成,安全可靠,连我也不知道你生成了什么</class="tag">p>
35<class="tag">div class=class="string">"keyword">class="card">
36<class="tag">div class=class="string">"keyword">class="result-box" id="result">点击生成密码</class="tag">div>
37<class="tag">div class=class="string">"keyword">class="strength-bar"><class="tag">div class=class="string">"keyword">class="strength-fill" id="strength"></class="tag">div></class="tag">div>
38<class="tag">p class=class="string">"keyword">class="length-display">密码长度: <class="tag">span id="lenVal">class="number">12</class="tag">span></class="tag">p>
39<class="tag">input type="range" id="length" min="class="number">6" max="class="number">32" value="class="number">12" oninput="updateLen();genPwd()">
40<class="tag">div class=class="string">"keyword">class="check-group">
41<class="tag">label><class="tag">input type="checkbox" id="upper" checked onchange="genPwd()"> A-Z</class="tag">label>
42<class="tag">label><class="tag">input type="checkbox" id="lower" checked onchange="genPwd()"> a-z</class="tag">label>
43<class="tag">label><class="tag">input type="checkbox" id="digit" checked onchange="genPwd()"> class="number">0-class="number">9</class="tag">label>
44<class="tag">label><class="tag">input type="checkbox" id="sym" onchange="genPwd()"> !@class=class="string">"keyword">class=class="string">"comment">#$%</class="tag">label>
45</class="tag">div>
46<class="tag">button class=class="string">"keyword">class="btn btn-primary" onclick="genPwd()">🔄 重新生成</class="tag">button>
47<class="tag">button class=class="string">"keyword">class="btn btn-outline" onclick="copyPwd()">📋 复制密码</class="tag">button>
48</class="tag">div>
49<class="tag">div style="text-align:center;margin-top:30px;font-size:12px;color:class=class="string">"keyword">class=class="string">"comment">#class="number">555"><class="tag">a href="source-viewer.php?file=password-generator.php" class=class="string">"keyword">class="source-link" style="color:#FF6B35;font-size:12px;text-decoration:none;display:inline-block;margin-right:12px;">📖 查看源码</class="tag">a> 本人编程小白,所有产品均为AI生成,若体验不佳请多包涵 🙏<class="tag">br>密码在浏览器本地生成,不上传不保存 · 请勿用于非法用途</class="tag">div>
50</class="tag">div>
51<class="tag">script src="/tools/share.js"></class="tag">script><class="tag">script src="/assets/pet-cat.js"></class="tag">script>
52<class="tag">script>
53class=class="string">"keyword">function updateLen(){document.class="func">getElementById(class="string">'lenVal').textContent=document.class="func">getElementById(class="string">'length').value}
54class=class="string">"keyword">function genPwd(){
55 class=class="string">"keyword">var len=parseInt(document.class="func">getElementById(class="string">'length').value);
56 class=class="string">"keyword">var chars=class="string">'',upper=class="string">'ABCDEFGHIJKLMNOPQRSTUVWXYZ',lower=class="string">'abcdefghijklmnopqrstuvwxyz',digit=class="string">'class="number">0123456789',sym=class="string">'!@class="keyword">class="comment">#$%^&*()_+-=[]{}|;:,.<>?';
57 class=class="string">"keyword">if(document.class="func">getElementById(class="string">'upper').checked)chars+=upper;
58 class=class="string">"keyword">if(document.class="func">getElementById(class="string">'lower').checked)chars+=lower;
59 class=class="string">"keyword">if(document.class="func">getElementById(class="string">'digit').checked)chars+=digit;
60 class=class="string">"keyword">if(document.class="func">getElementById(class="string">'sym').checked)chars+=sym;
61 class=class="string">"keyword">if(!chars){document.class="func">getElementById(class="string">'result').textContent=class="string">'至少选一个类型!';class=class="string">"keyword">return}
62 class=class="string">"keyword">var pwd=class="string">'';
63 class=class="string">"keyword">for(class=class="string">"keyword">var i=class="number">0;i<class="tag">len;i++)pwd+=chars[Math.floor(Math.random()*chars.length)];
64 document.class="func">getElementById(class="string">'result').textContent=pwd;
65 calcStrength(pwd,len);
66}
67class=class="string">"keyword">function calcStrength(pwd,len){
68 class=class="string">"keyword">var score=class="number">0;
69 class=class="string">"keyword">if(len>=class="number">8)score+=class="number">25;class=class="string">"keyword">if(len>=class="number">12)score+=class="number">25;class=class="string">"keyword">if(len>=class="number">16)score+=class="number">25;
70 class=class="string">"keyword">if(/[a-z]/.test(pwd)&&/[A-Z]/.test(pwd))score+=class="number">15;
71 class=class="string">"keyword">if(/\d/.test(pwd))score+=class="number">10;class=class="string">"keyword">if(/[^a-zA-Z0-class="number">9]/.test(pwd))score+=class="number">15;
72 class=class="string">"keyword">if(/[a-z]/.test(pwd)&&/[A-Z]/.test(pwd)&&/\d/.test(pwd)&&/[^a-zA-Z0-class="number">9]/.test(pwd))score+=class="number">20;
73 score=Math.min(class="number">100,score);
74 class=class="string">"keyword">var bar=document.class="func">getElementById(class="string">'strength');
75 bar.style.width=score+class="string">'%';
76 class=class="string">"keyword">if(score<class="number">30)bar.style.background=class="string">'class="keyword">class="comment">#ef4444';
77 class=class="string">"keyword">else class=class="string">"keyword">if(score<class="number">60)bar.style.background=class="string">'class="keyword">class="comment">#fb923c';
78 class=class="string">"keyword">else class=class="string">"keyword">if(score<class="number">80)bar.style.background=class="string">'class="keyword">class="comment">#facc15';
79 class=class="string">"keyword">else bar.style.background=class="string">'class="keyword">class="comment">#4ade80';
80}
81class=class="string">"keyword">function copyPwd(){
82 class=class="string">"keyword">var t=document.class="func">getElementById(class="string">'result').textContent;
83 class=class="string">"keyword">if(!t||t===class="string">'点击生成密码')class=class="string">"keyword">return;
84 navigator.clipboard.writeText(t).class="func">then(class=class="string">"keyword">function(){class="func">alert(class="string">'已复制!')}).class="func">catch(class=class="string">"keyword">function(){class="func">alert(class="string">'复制失败,请手动复制')});
85}
86genPwd();
87</class="tag">script></class="tag">body></class="tag">html>
88
Warning: Cannot modify header information - headers already sent by (output started at /www/wwwroot/273059_cn/tools/source-viewer.php:69) in /www/wwwroot/273059_cn/tools/source-viewer.php on line 72
Warning: Cannot modify header information - headers already sent by (output started at /www/wwwroot/273059_cn/tools/source-viewer.php:69) in /www/wwwroot/273059_cn/tools/source-viewer.php on line 73
随机密码生成器 - η空间
# 随机密码
本地生成,安全可靠,连我也不知道你生成了什么
点击生成密码
密码长度: 12
📖 查看源码 本人编程小白,所有产品均为AI生成,若体验不佳请多包涵 🙏
密码在浏览器本地生成,不上传不保存 · 请勿用于非法用途