на вход подается строка содержащая 128бит
на выходе должна быть правильная сид-фраза. но 12е слово у меня не получается. подозреваю что дело в хешировании входящей строки. Но не знаю как исправить. Помогите пожалуйста.
private String[] generateMnemonic2(String seedEntropy) { // на вход сид
System.out.println(seedEntropy);
String[] mnemonicWords = new String[12];
for (int i = 0; i < 11; i++) {
int mnemWord = Integer.parseInt(seedEntropy.substring(i * 11, i * 11 + 11), 2);
mnemonicWords[i] = English.getWord(mnemWord);
}
mnemonicWords[11]=seedEntropy.substring(121,128); //тут храню остаток временно
String g=DigestUtils.sha256Hex(seedEntropy.getBytes()).substring(0,1);
System.out.println(g);
String v=mnemonicWords[11]+hexToBinary(g);
System.out.println(v);
BigInteger sha =new BigInteger(v,2);
System.out.println(sha.toString());
mnemonicWords[11] = English.getWord(sha.intValue());
return mnemonicWords;
}
String hexToBinary(String hex) {
int i = Integer.parseInt(hex, 16);
String bin = Integer.toBinaryString(i);
return bin;
}
(слова лежат в массиве поэтому +1 не пишу. Первые 11 слов делаются верно)
Заранее огромное спасибо за помощь