{"id":165,"date":"2019-04-09T19:05:08","date_gmt":"2019-04-09T10:05:08","guid":{"rendered":"https:\/\/www.earce.biz\/?page_id=165"},"modified":"2026-03-02T09:43:58","modified_gmt":"2026-03-02T00:43:58","slug":"tool-password-generator","status":"publish","type":"page","link":"https:\/\/www.earce.biz\/?page_id=165","title":{"rendered":"[Tool] Password Generator"},"content":{"rendered":"\n<p class=\"has-text-align-center\" style=\"font-size:12px;white-space:nowrap;\">&lt;&lt; This service is not communicating with the server. &gt;&gt;<\/p>\n\n\n\n<style>\n  @import url('https:\/\/fonts.googleapis.com\/css?family=Noto+Sans+JP');\n\n  .data-label{\n    position : relative;\n  }\n\n  .tooltip {\n    display  : none;\n    position : absolute;\n    z-index  : 9999;\n    bottom   : 115%;\n    left     : -1em;\n\n    padding  : 0.5em 1em;\n    \n    background-color : orangered;\n    opacity       : 0.8;\n    \n    color    : white;\n    text-align : left;\n    border-radius : 0.3em;\n\n    font-family: 'Noto Sans JP', sans-serif;\n    font-size : 0.8em;\n    font-weight : 100;\n  }\n\n  .tooltip::after {\n    content: \" \";\n    position: absolute;\n    top: 100%;\n    left: 2em;\n    margin-left: -5px;\n    border-width: 5px;\n    border-style: solid;\n    border-color: orangered transparent transparent transparent;\n  }\n\n<\/style>\n\n\n\n<style>\n  .toggle-input {\n    display   : none;\n  }\n\n  .toggle-input + label {\n    border    : inset 3px #f5f5f5;\n    border-radius : 28px;\n    padding-left  : 2em;\n    padding-right : 2em;\n    margin    : 5px;\n    background-color : #f8f8ff;\n    font-weight : bold !important;\n    color     : #808080;\n    height    : 3em;\n    display   : table-cell;\n    text-align: center;\n    vertical-align: middle;\n    line-height: 1.1;\n  }\n  \n  .toggle-input:checked + label{\n    background-color : #d3381c;\n    color     : white;\n  }\n<\/style>\n\n\n\n<style>\n  @import url('https:\/\/fonts.googleapis.com\/css?family=Source+Code+Pro');\n\n  #result {\n    font-family: 'Source Code Pro', monospace;\n  }\n\n  .data-items {\n  }\n\n  .data-item {\n    display        : flex;\n    flex-wrap      : wrap;\n    margin-bottom  : 1em;\n    padding-bottom : 0.5em;\n    border-bottom  : solid 1px #eee;\n  }\n\n  .data-label {\n    width        : 100%;\n    margin-left  : 0.5em;\n    font-weight  : bold;\n  }\n\n  .data-value {\n    display   : -webkit-flex;\n    display   : flex;\n    -webkit-justify-content : space-between;\n    justify-content : space-between;\n    flex-wrap : wrap;\n    margin-left   : auto;\n    margin-right  : 0.5em;\n  }\n\n  .data-value-select {\n    display   : -webkit-flex;\n    display   : flex;\n    -webkit-justify-content : space-around;\n    justify-content : space-around;\n    flex-wrap : wrap;\n    width     : 100%;\n    margin-right  : 0.5em;\n  }\n\n  .data-value-select label {\n    width     : 18em;\n  }\n\n  .data-input {\n    border   : solid 2px #bbb !important;\n  }\n\n<\/style>\n\n\n\n<div class=\"data-items\">\n  <div class=\"data-item\">\n    <span class=\"data-label\"><span id=\"tip1\" class=\"tooltip\">\u30d1\u30b9\u30ef\u30fc\u30c9\u306e\u6587\u5b57\u6570\u306f4\u6587\u5b57\u4ee5\u4e0a\u3092\u6307\u5b9a\u3057\u3066\u304f\u3060\u3055\u3044<\/span>Password length is required<\/span>\n    <span class=\"data-value\"><input id=\"passLen\" type=\"number\" class=\"data-input\" min=\"4\" max=\"256\" value=\"24\" placeholder=\"\"><\/span>\n  <\/div>\n  <div class=\"data-item\">\n    <span class=\"data-label\"><span id=\"tip2\" class=\"tooltip\">\u751f\u6210\u3059\u308b\u30d1\u30b9\u30ef\u30fc\u30c9\u500b\u6570\u3092\u6307\u5b9a\u3057\u3066\u304f\u3060\u3055\u3044<\/span>Quantity<\/span>\n    <span class=\"data-value\"><input id=\"quantity\" type=\"number\" class=\"data-input\" min=\"10\" max=\"100\" value=\"20\" placeholder=\"\"><\/span>\n  <\/div>\n  <div class=\"data-item\">\n    <div class=\"data-value-select\">\n      <span class=\"data-label\"><span id=\"tip3\" class=\"tooltip\">\u30d1\u30bf\u30fc\u30f3\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044<\/span>Pattern<\/span>\n      <span><input type=\"radio\" name=\"pattern1\" id=\"pattern1-1\" class=\"toggle-input\" value=\"1\"><label for=\"pattern1-1\">0~1 a~z<\/label><\/span>\n      <span><input type=\"radio\" name=\"pattern1\" id=\"pattern1-2\" class=\"toggle-input\" value=\"2\"><label for=\"pattern1-2\">0~1 a~z<br>\u8aa4\u8a8d\u6587\u5b57\u306a\u3057<\/label><\/span>\n      <span><input type=\"radio\" name=\"pattern1\" id=\"pattern1-3\" class=\"toggle-input\" value=\"3\"><label for=\"pattern1-3\">0~1 a~z A~Z<\/label><\/span>\n      <span><input type=\"radio\" name=\"pattern1\" id=\"pattern1-4\" class=\"toggle-input\" value=\"4\" checked=\"checked\"><label for=\"pattern1-4\">0~1 a~z A~Z<br>\u8aa4\u8a8d\u6587\u5b57\u306a\u3057<\/label><\/span>\n      <span><input type=\"radio\" name=\"pattern1\" id=\"pattern1-5\" class=\"toggle-input\" value=\"5\"><label for=\"pattern1-5\">0~1 a~z @#_$<\/label><\/span>\n      <span><input type=\"radio\" name=\"pattern1\" id=\"pattern1-6\" class=\"toggle-input\" value=\"6\"><label for=\"pattern1-6\">0~1 a~z @#_$<br>\u8aa4\u8a8d\u6587\u5b57\u306a\u3057<\/label><\/span>\n      <span><input type=\"radio\" name=\"pattern1\" id=\"pattern1-7\" class=\"toggle-input\" value=\"7\"><label for=\"pattern1-7\">0~1 a~z A-Z @#_$<\/label><\/span>\n      <span><input type=\"radio\" name=\"pattern1\" id=\"pattern1-8\" class=\"toggle-input\" value=\"8\"><label for=\"pattern1-8\">0~1 a~z A~Z @#_$<br>\u8aa4\u8a8d\u6587\u5b57\u306a\u3057<\/label><\/span>\n      <span><input type=\"radio\" name=\"pattern1\" id=\"pattern1-9\" class=\"toggle-input\" value=\"9\"><label for=\"pattern1-9\">0~9<\/label><\/span>\n      <span><input type=\"radio\" name=\"pattern1\" id=\"pattern1-10\" class=\"toggle-input\" value=\"10\"><label for=\"pattern1-10\">a~z A~Z<\/label><\/span>\n    <\/div>\n  <\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-button aligncenter custom-wide-button\">\n<button id=\"actionButton\" class=\"wp-block-button__link has-background has-vivid-cyan-blue-background-color\">Generate<\/button>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<textarea id=\"result\" rows=\"10\" style=\"width:100%;\"><\/textarea>\n\n\n\n<script type=\"text\/javascript\">\nvar PASS_PATTERN1 = {\n  pattern1 : \"abcdefghijklmnopqrstuvwxyz\",\n  pattern2 : \"0123456789\",\n  pattern3 : \"\"\n};\nvar PASS_PATTERN2 = {\n  pattern1 : \"abcdefghijkmnopqrstuvwxyz\",\n  pattern2 : \"23456789\",\n  pattern3 : \"\"\n};\nvar PASS_PATTERN3 = {\n  pattern1 : \"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ\",\n  pattern2 : \"0123456789\",\n  pattern3 : \"\"\n};\nvar PASS_PATTERN4 = {\n  pattern1 : \"abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTWXYZ\",\n  pattern2 : \"23456789\",\n  pattern3 : \"\"\n};\nvar PASS_PATTERN5 = {\n  pattern1 : \"abcdefghijklmnopqrstuvwxyz\",\n  pattern2 : \"0123456789\",\n  pattern3 : \"@#_$\"\n};\nvar PASS_PATTERN6 = {\n  pattern1 : \"abcdefghijkmnopqrstuvwxyz\",\n  pattern2 : \"023456789\",\n  pattern3 : \"@#_$\"\n};\nvar PASS_PATTERN7 = {\n  pattern1 : \"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ\",\n  pattern2 : \"0123456789\",\n  pattern3 : \"@#_$\"\n};\nvar PASS_PATTERN8 = {\n  pattern1 : \"abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ\",\n  pattern2 : \"23456789\",\n  pattern3 : \"@#_$\"\n};\nvar PASS_PATTERN9 = {\n  pattern1 : \"\",\n  pattern2 : \"0123456789\",\n  pattern3 : \"\"\n};\nvar PASS_PATTERN10 = {\n  pattern1 : \"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ\",\n  pattern2 : \"\",\n  pattern3 : \"\"\n};\n\nfunction generatePattern(pass_pattern, patternLength, beforeCheckLength) {\n  var befChars = \"\";\n  var patternBuf = \"\";\n  var checkLength = 0 - beforeCheckLength;\n  while (patternBuf.length < patternLength) {\n    var randIdx = Math.floor( Math.random() * pass_pattern.length );\n    var randChar = pass_pattern.charAt(randIdx);\n    if (befChars.indexOf(randChar.toLowerCase()) < 0) {\n      patternBuf += randChar;\n      if (checkLength < 0) {\n        befChars += randChar.toLowerCase();\n        befChars = befChars.substr(checkLength);\n      }\n    }\n  }\n  return patternBuf;\n}\n\n\nfunction generatePassword(pass_pattern, patternLength) {\n  var lineBuf = \"\";\n  lineBuf  = generatePattern(pass_pattern.pattern1, patternLength.pattern1, 8);\n  lineBuf += generatePattern(pass_pattern.pattern2, patternLength.pattern2, 4);\n  lineBuf += generatePattern(pass_pattern.pattern3, patternLength.pattern3, 0);\n  \n  var returnBuf = \"\";\n  var chars = lineBuf.split('');\n  while (chars.length > 0) {\n    let randIdx = Math.floor( Math.random() * chars.length );\n    let char = chars.splice(randIdx, 1);\n    returnBuf += char;\n  }\n  return returnBuf;\n}\n\n\n\njQuery().ready(function($){\n$(\"#actionButton\").click(\n  function(e) {\n\n    $('#tip1').hide();\n    $('#tip2').hide();\n    $('#tip3').hide();\n    var inputCheckNG = false;\n\n    var passLen = Number( $('#passLen').val() );\n    if (passLen < 4) {\n      $('#tip1').fadeIn();\n      inputCheckNG = true;\n    }\n    \n    var quantity = Number( $('#quantity').val() );\n    if (quantity <= 0) {\n      $('#tip2').fadeIn();\n      inputCheckNG = true;\n    }\n\n    var pattern = $('input[name=\"pattern1\"]:checked').val();\n    if (!pattern) {\n      $('#tip3').fadeIn();\n      inputCheckNG = true;\n    }\n    \n    if (inputCheckNG) {\n      return;\n    }\n\n    if (!pattern) {\n      $('input[name=\"pattern1\"]').val(['1']);\n      pattern = \"1\";\n    }\n\n    var patternLength = {\n      total : 0,\n      pattern1 : 0,\n      pattern2 : 0,\n      pattern3 : 0\n    };\n    var pass_pattern = PASS_PATTERN1;\n    switch(pattern) {\n      case '1':\n        pass_pattern = PASS_PATTERN1;\n        patternLength.pattern2 = passLen * 0.2;\n        break;\n      case '2':\n        pass_pattern = PASS_PATTERN2;\n        patternLength.pattern2 = passLen * 0.2;\n        break;\n      case '3':\n        pass_pattern = PASS_PATTERN3;\n        patternLength.pattern2 = passLen * 0.2;\n        break;\n      case '4':\n        pass_pattern = PASS_PATTERN4;\n        patternLength.pattern2 = passLen * 0.2;\n        break;\n      case '5':\n        pass_pattern = PASS_PATTERN5;\n        patternLength.pattern2 = passLen * 0.2;\n        patternLength.pattern3 = passLen * 0.05;\n        break;\n      case '6':\n        pass_pattern = PASS_PATTERN6;\n        patternLength.pattern2 = passLen * 0.2;\n        patternLength.pattern3 = passLen * 0.05;\n        break;\n      case '7':\n        pass_pattern = PASS_PATTERN7;\n        patternLength.pattern2 = passLen * 0.2;\n        patternLength.pattern3 = passLen * 0.05;\n        break;\n      case '8':\n        pass_pattern = PASS_PATTERN8;\n        patternLength.pattern2 = passLen * 0.2;\n        patternLength.pattern3 = passLen * 0.05;\n        break;\n      case '9':\n        pass_pattern = PASS_PATTERN9;\n        patternLength.pattern2 = passLen;\n        patternLength.pattern3 = 0;\n        break;\n      case '10':\n        pass_pattern = PASS_PATTERN10;\n        patternLength.pattern2 = 0;\n        patternLength.pattern3 = 0;\n        break;\n    }\n    patternLength.pattern2 = Math.ceil(patternLength.pattern2);\n    patternLength.pattern3 = Math.ceil(patternLength.pattern3);\n    patternLength.pattern1 = passLen - (patternLength.pattern2 + patternLength.pattern3);\n    patternLength.total = passLen;\n\n    $('#result').val(\"\");\n    var resultBuf = \"\";\n    for (var idx=0;idx<quantity;idx++) {\n      var lineBuf = generatePassword(pass_pattern, patternLength);\n      resultBuf += lineBuf + \"\\n\";\n    }\n\n    $('#result').val(resultBuf);\n  }\n);\n\n});\n<\/script>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u30d1\u30b9\u30ef\u30fc\u30c9\u306e\u6587\u5b57\u6570\u306f4\u6587\u5b57\u4ee5\u4e0a\u3092\u6307\u5b9a\u3057\u3066\u304f\u3060\u3055\u3044Password length is required \u751f\u6210\u3059\u308b\u30d1\u30b9\u30ef\u30fc\u30c9\u500b\u6570\u3092\u6307\u5b9a\u3057\u3066\u304f\u3060\u3055\u3044Quantity \u30d1\u30bf\u30fc\u30f3\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044Pattern 0~1 a~z  &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/www.earce.biz\/?page_id=165\" class=\"more-link\"><span class=\"screen-reader-text\">&#8220;[Tool] Password Generator&#8221; \u306e<\/span>\u7d9a\u304d\u3092\u8aad\u3080<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":35,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-165","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.earce.biz\/index.php?rest_route=\/wp\/v2\/pages\/165","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.earce.biz\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.earce.biz\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.earce.biz\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.earce.biz\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=165"}],"version-history":[{"count":325,"href":"https:\/\/www.earce.biz\/index.php?rest_route=\/wp\/v2\/pages\/165\/revisions"}],"predecessor-version":[{"id":2815,"href":"https:\/\/www.earce.biz\/index.php?rest_route=\/wp\/v2\/pages\/165\/revisions\/2815"}],"up":[{"embeddable":true,"href":"https:\/\/www.earce.biz\/index.php?rest_route=\/wp\/v2\/pages\/35"}],"wp:attachment":[{"href":"https:\/\/www.earce.biz\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=165"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}