Ejemplo n.º 1
0
  /**
   * 一文字ランダムで大文字に変換
   *
   * @param string
   * @return
   */
  private String randomUpperString(String string) {
    if (string.matches(".[0-9@%\\+\\^#\\$:\\\\\\/!\\?\\.\\(\\)\\{\\-_\\[\\]~\\}']*")
        || string.equals(string.toUpperCase())) {
      return string;
    }
    int randNum = new java.util.Random().nextInt(string.length() - 1);
    String headString = "";
    String uppString = "";
    String buttomString = "";
    if (randNum == 0) {
      headString = "";
      uppString = string.substring(0, 1);
      buttomString = string.substring(1, string.length());
    } else {
      headString = string.substring(0, randNum);
      uppString = string.substring(randNum, randNum + 1);
      buttomString = string.substring(randNum + 1, string.length());
    }

    if (uppString.matches("[a-z]")) {
      if (chbb && chbs) {
        poolString.setUpperN(String.valueOf(randNum + 1));
      }
      uppString = uppString.toUpperCase();
      StringBuilder stb = new StringBuilder();
      stb.append(headString);
      stb.append(uppString);
      stb.append(buttomString);
      return stb.toString();
    } else {
      String str = randomUpperString(string);
      return str;
    }
  }
Ejemplo n.º 2
0
 private String plusNumber(String numString) {
   int plus = 1;
   String str = "";
   int num = Integer.parseInt(numString);
   for (int i = 0; i < numString.length(); i++) {
     if (numString.substring(numString.length() - 1 - i, numString.length() - i).equals("9")) {
       num = (int) (num - ((Math.pow(10, i)) * 9));
     } else {
       num = (int) (num + ((Math.pow(10, i)) * plus));
     }
   }
   str = String.valueOf(num);
   poolString.setnElemP(String.valueOf(plus));
   return str;
 }
Ejemplo n.º 3
0
  private String loopMakePass(String baseStr, int totalNum) {
    StringBuilder stb = new StringBuilder();

    stb.append(baseStr);
    if (stb.toString().length() < totalNum) {
      try {
        stb.append(stb.toString().substring(0, totalNum - stb.toString().length()));
      } catch (Exception e) {
        stb.append(stb.toString().substring(0, stb.toString().length()));
      }
      poolString.setLoop(true);
      loopMakePass(stb.toString(), totalNum);
    } else {
      returnstring = stb.toString();
      return stb.toString();
    }
    return returnstring;
  }
Ejemplo n.º 4
0
  @Override
  public void onClick(View v) {
    if (!ClickTimerEvent.isClickEvent()) return;
    if (v == btnInsert) {
      // 「登録」ボタン ⇒インサート処理
      if (pref.readConfig("id", "0").equals("0")) {
        datainsert();
      } else {
        dataupdate();
      }

      Intent intent = new Intent(GenePass.this, PassList2.class);
      intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
      startActivity(intent);
    } else if (v == btnRegene) {
      // 「ReGene」ボタン ⇒もう一度パスワード作る
      poolString.init();
      makePass();
    }
  }
Ejemplo n.º 5
0
  private void setStringD() {
    // とりあえず引っ張る/////////////////////////////////////////////////////////////
    String[] temp;
    temp = randuserinfo();
    userInfoId1 = Integer.parseInt(temp[0]);
    partsAlb1E = temp[1];
    partsAlb1 = temp[2];
    temp = randuserinfo();
    userInfoId2 = Integer.parseInt(temp[0]);
    partsAlb2E = temp[1];
    partsAlb2 = temp[2];
    String partsSign = "@%+^#$:\\/!?.(){-_[~]}'";
    String partsSignE = getResources().getString(R.string.passk);
    temp = randuserinfoNum();
    userInfoId3 = Integer.parseInt(temp[0]);
    partsNumE = temp[1];
    partsNum = temp[2];

    passM1 = partsAlb1.toLowerCase();
    passM2 = partsAlb2.toLowerCase();
    passS = partsSign;
    passN = partsNum;
    passM1E = partsAlb1E;
    passM2E = partsAlb2E;
    passSE = partsSignE;
    passNE = partsNumE;

    // 文字数
    totalNum = seekbarP + 4;
    poolString.setTotalNum(String.valueOf(totalNum));
    Log.e("passN", passN);
    Log.e("passM1", passM1);
    Log.e("passM2", passM2);
    Log.e("passS", passS);
    Log.e("e", totalNum + "");
  }
Ejemplo n.º 6
0
  private void makePass() {
    setStringD();

    // 文字数決定/////////////////////////////////////////////////////////////////////////////////
    // 文字数決定/////////////////////////////////////////////////////////////////////////////////
    int numN = 0;
    int numB = 0;
    int numS = 0;
    int numK = 0;
    int i = 0;
    if (chbk) {
      numK++;
      i++;
    }
    for (; i < totalNum; ) {
      if (chbs) {
        numS++;
        i++;
      }
      if (chbb && i < totalNum) {
        numB++;
        i++;
      }
      if (chbnum && i < totalNum) {
        numN++;
        i++;
      }
    }

    Log.e(
        "合計",
        numK + numB + numN + numS + ":numk::" + numK + ":numB::" + numB + ":numN::" + numN
            + ":numS::" + numS + "");
    // 文字数決定/////////////////////////////////////////////////////////////////////////////////

    // 文字の切り出し/////////////////////////////////////////////////////////////////////////////
    // 文字の切り出し/////////////////////////////////////////////////////////////////////////////
    // ナンバー下○桁
    if (chbnum && numN > 0) {
      if (passN.length() >= numN) {
        passN = passN.substring(passN.length() - numN, passN.length());
        // 各桁に数字を足したり引いたり
        Log.e("passN", passN);
      } else {
        // 文字数が足りてないときの処理
        Log.e("passN", "文字不足");
      }
      passN = plusNumber(passN);
    }
    // 文字上○桁
    if (chbb && numB > 0) {
      if (passM1.length() >= numB) {
        passM1 = passM1.substring(0, numB);
        Log.e("passM1", passM1);
      } else {
        // 文字数が足りないとき
        numB = passM1.length();
        Log.e("passM1", "文字不足");
      }
    }
    // 文字上○桁
    if (chbs && numS > 0) {
      if (passM2.length() >= numS) {
        passM2 = passM2.substring(0, numS);

      } else {
        numS = passM2.length();
        Log.e("passM2", "文字不足");
      }
    }

    if (chbk && numK > 0) {
      int randNum = new java.util.Random().nextInt(partsSign.length());
      passS = passS.substring(randNum, randNum + 1);
      Log.e("passS", passS);
    }
    // 文字の切り出し/////////////////////////////////////////////////////////////////////////////

    // ミックスする/////////////////////////////////////////////////////////////////////////
    // ミックスする////////////////////////////////////////////////////////////////////////
    StringBuilder stringB = new StringBuilder();
    stringB.append(passM1);
    stringB.append(passM2);
    String strtemp1 = stringB.toString();

    String strtemp2 = "";
    StringBuilder stringC = new StringBuilder();
    // ミックス
    Log.e("passM1", passM1); // zxyvw
    Log.e("passM2", passM2); // aiu
    if (passM1.length() < passM2.length()) {
      for (int k = 0; k < passM1.length(); k++) {
        stringC.append(passM1.substring(k, k + 1));
        stringC.append(passM2.substring(k, k + 1));
      }
      int temp = passM2.length() - passM1.length();
      stringC.append(passM2.substring(temp + 1, passM2.length()));
    } else if (passM1.length() > passM2.length()) {
      for (int k = 0; k < passM2.length(); k++) {
        stringC.append(passM1.substring(k, k + 1));
        stringC.append(passM2.substring(k, k + 1));
      }
      int temp = passM1.length() - passM2.length();
      stringC.append(passM1.substring(temp + 1, passM1.length()));
    } else {
      for (int k = 0; k < passM2.length(); k++) {
        stringC.append(passM1.substring(k, k + 1));
        stringC.append(passM2.substring(k, k + 1));
      }
    }

    // ミックスする/////////////////////////////////////////////////////////////////////////

    // 大きなセットができる//////////////////////////////////////////////////////////////////
    // 大きなセットができる//////////////////////////////////////////////////////////////////
    StringBuilder stb = new StringBuilder();
    if (chbb) {
      poolString.setElem1S(passM1E);
      poolString.setElem1N(String.valueOf(numB));
      stb.append(passM1);
    }
    if (chbs) {
      poolString.setElem2S(passM2E);
      poolString.setElem2N(String.valueOf(numS));
      stb.append(passM2);
    }
    if (chbk) {
      poolString.setSign(passS);
      stb.append(passS);
    }
    if (chbnum) {
      poolString.setnElemS(passNE);
      if (passN.length() > numN) {
        poolString.setnElemN(String.valueOf(numN));
      } else {
        poolString.setnElemN(String.valueOf(passN.length()));
      }
      stb.append(passN);
    }
    // 大きなセットができる//////////////////////////////////////////////////////////////////

    // ランダムで大文字をはめ込む
    String haveUpp = randomUpperString(stb.toString());
    int stringLength = passM1.length() + passM2.length();
    int tempRnad = new java.util.Random().nextInt(2);
    for (int j = 0; j < tempRnad; j++) {
      haveUpp = randomUpperString(haveUpp);
    }
    // 文字が少ない場合繰り返す
    String minipass = loopMakePass(haveUpp, totalNum);

    if (chbb && !chbs) {
      minipass = minipass.toUpperCase();
    }
    if (!chbb && chbs) {
      minipass = minipass.toLowerCase();
    }

    gp_txv_pass.setText(minipass);
    gp_txv_hint.setText(poolString.makeString());

    passHint = poolString.makeString();
    fixed_pass = minipass;
    txvSheep.setText(setComment());
  }