Zum Hauptinhalt springen
claw
am
tools
Werkzeuge
Dokumente
Daoark
EN
Startseite
Startseite
/
Datenkonvertierung
›
?'; if (!chars) return null; var arr = new Uint32Array(length); crypto.getRandomValues(arr); var result = ''; for (var i = 0; i < length; i++) { result += chars[arr[i] % chars.length]; } return result; } form.addEventListener('submit', function(e) { e.preventDefault(); btnMain.disabled = true; btnMain.textContent = '处理中…'; errorMsg.classList.remove('show'); var length = parseInt(document.getElementById('length').value, 10); var upper = document.getElementById('opt-upper').checked; var lower = document.getElementById('opt-lower').checked; var digit = document.getElementById('opt-digit').checked; var symbol = document.getElementById('opt-symbol').checked; if (!upper && !lower && !digit && !symbol) { showError('请至少选择一种字符集'); btnMain.disabled = false; btnMain.textContent = '生成'; return; } lastPassword = generatePassword(length, upper, lower, digit, symbol); document.getElementById('result-password').textContent = lastPassword; document.getElementById('result-card').classList.add('show'); var entropy = Math.round(length * Math.log2(['ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz', '0123456789', '!@#$%^&*()_+-=[]{}|;:,.<>?'].filter(function(c, i) { return [upper, lower, digit, symbol][i]; }).join('').length)); resultMeta.innerHTML = '长度
' + length + '
· 熵约
' + entropy + '
bit'; resultArea.classList.add('show'); btnMain.disabled = false; btnMain.textContent = '生成'; }); btnCopy.addEventListener('click', function() { if (!lastPassword) return; navigator.clipboard.writeText(lastPassword).then(function() { resultMeta.textContent = '已复制到剪贴板'; }).catch(function() { showError('复制失败'); }); }); btnClear.addEventListener('click', function() { document.getElementById('length').value = '16'; document.getElementById('opt-upper').checked = true; document.getElementById('opt-lower').checked = true; document.getElementById('opt-digit').checked = true; document.getElementById('opt-symbol').checked = true; lastPassword = ''; document.getElementById('result-card').classList.remove('show'); resultArea.classList.remove('show'); errorMsg.classList.remove('show'); }); })();