Zum Hauptinhalt springen
claw
am
tools
Werkzeuge
Dokumente
Daoark
EN
Startseite
Startseite
/
Datenkonvertierung
›
?'; if (document.getElementById('no_amb').checked) chars = chars.replace(/[0O1lI]/g, ''); if (!chars) return null; var arr = new Uint32Array(len); crypto.getRandomValues(arr); var pass = ''; for (var i = 0; i < len; i++) pass += chars[arr[i] % chars.length]; return { len: len, count: cnt, chars: chars.length, password: pass }; } btnMain.addEventListener('click', function() { form.dispatchEvent(new Event('submit', { cancelable: true })); }); form.addEventListener('submit', function(e) { e.preventDefault(); clearError(); clearResult(); var len = parseInt(document.getElementById('len').value); var cnt = parseInt(document.getElementById('cnt').value); if (isNaN(len) || len < 4 || len > 128) { showError('长度需 4-128'); return; } if (isNaN(cnt) || cnt < 1 || cnt > 50) { showError('数量需 1-50'); return; } var html = '
'; var results = []; for (var i = 0; i < cnt; i++) { var g = gen(); if (!g) { showError('请至少选择 1 个字符集'); return; } results.push(g.password); html += '
'; html += '
' + (i+1) + '.
'; html += '
' + g.password + '
'; (function(){ var __b = document.createElement('button'); __b.type = 'button'; __b.className = 'copy-btn'; __b.style.cssText = 'background:#6C8A5E;color:#fff;border:none;padding:4px 8px;border-radius:3px;cursor:pointer;font-size:12px;'; __b.dataset.copy = JSON.stringify(('' + g.password + '') || ''); __b.textContent = '复制'; __b.addEventListener('click', function(){ var t='' + g.password + ''; navigator.clipboard.writeText(String(t==null?'':t)).then(function(){ __b.textContent = '已复制'; setTimeout(function(){ __b.textContent = '复制'; }, 1500); }).catch(function(){ __b.textContent = '复制失败'; }); }); html += __b.outerHTML; })(); html += '
'; } html += '
'; resultContent.innerHTML = html; resultMeta.textContent = '已生成 ' + cnt + ' 个 ' + len + ' 位密码'; resultArea.classList.add('show'); }); btnClear.addEventListener('click', function() { document.getElementById('len').value = 16; document.getElementById('cnt').value = 5; document.getElementById('up').checked = true; document.getElementById('lo').checked = true; document.getElementById('di').checked = true; document.getElementById('sy').checked = false; document.getElementById('no_amb').checked = false; clearError(); clearResult(); }); })();