Как построить контрольную цифру в ключе битлокера? Я просто не могу понять это из следующих источников: https://blogs.msdn.microsoft.com/si_team/2006/08/10/bitlocker-recovery-password-details/ http://jessekornblum.com/publications/di09.pdf гл. 5.4
Должен ли я генерировать случайное 5-значное число и добавлять дополнительно вычисляемую цифру? но как сделать его все еще делимым на 11?
вот как я сейчас строю свои группы:
byte[] randomBytes = new byte[128];
rnd.nextBytes(randomBytes);
BitSet bitSet= BitSet.valueOf(randomBytes);
String key="";
String group="";
for (int i = 0; i < 8; i++) {
BitSet groupBitSet = bitSet.get(i*16,16*(i+1)-1);
group=String.format("%06d",groupBitSet.toLongArray()[0]*11);
key=key+group;
if (i<7) { key=key+'-';}
}
return key;
Конечно, последняя цифра каждой группы не соответствует спецификациям. ...
Не могли бы вы объяснить право на это?
Спасибо