@SankaSanka

Как создать seed из 128битного числа?

на вход подается строка содержащая 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 слов делаются верно)

Заранее огромное спасибо за помощь
  • Вопрос задан
  • 86 просмотров
Пригласить эксперта
Ответы на вопрос 1
Noizefan
@Noizefan
Косяк в алгоритме
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы