Мне нужно найти ключ для расшифровки того, что было зашифровано с помощью Xor. Я знаю, что ключ - это только один байт. Я надеялся, что сможет переборщить разумный ключ. Есть ли список возможных ключей, на которые меня могли бы направить. Кроме того, будет ключ в шестнадцатеричном или десятичном формате. БлагодаряВозможные байтовые ключи Xor
ответ
Ну, если ключ находится только один байт, то просто попробуйте все числа от 0 (0000 0000) до 255 (1111 1111)
Я представил answer ранее для некоторой схемы 8-канальный исключающее шифрования производства результат из закодированного msg и без ключей. Функция, которая находит ключ вместе с установкой и поддержкой кодой выглядит следующим образом:
//setup a table of readable characters (characters we will expect to see in the decrypted result).
var readableCharacters=Object.create(null);
var alphanumerics=[[0x30,0x39],[0x41,0x5a],[0x61,0x7a]];
var alphabetical=[[0x41,0x5a],[0x61,0x7a]];
alphanumerics.forEach(function(range){
var indexStart=range[0];
var indexEnd=range[1];
for (var i=indexStart; i<=indexEnd; i++){
var ch=String.fromCharCode(i);
readableCharacters[ch]=1;
}
});
//add some extra characters to the table (optional)
(" ,.;:!\"'").split("").forEach(function(ch){readableCharacters[ch]=1;});
//xor decryption
function dec(nkey,ncrypt){
var ndec=nkey^ncrypt;
return ndec;
}
//find a key candidate by determining which keys correspond to the highest occurance of characters found in the readable character lookup table.
function findKeyCandidate(byteArray){
var keyResults=[];
for (var key=0; key<256; key++){
keyResults[key]=0;
byteArray.forEach(function(ncrypt){
var ndec=dec(key,ncrypt);
var dchar=String.fromCharCode(ndec);
if(readableCharacters[dchar]){
keyResults[key]++;
}
});
}
keyResults=keyResults.map(function(count,index){
return {key:index,count:count};
});
keyResults.sort(function(a,b){
return a.count-b.count;
});
return keyResults.pop().key;
}
Примечания: Для входа вам нужен массив фактических байт (т.е. массив чисел 0-255) не шестнадцатеричная строка (преобразование из hex в массив байтов и обратно присутствует в предыдущем решении, связанном выше). Вывод - это байтовый размер.
Все это предполагает, что вы получите сообщение, которое читается людьми, если вы ожидаете какую-либо другую структуру/состав сообщений, тогда вам нужно будет изменить код в соответствии с тем, что вы ожидаете найти.
- 1. Каковы возможные ключи оптимизации Haskell?
- 2. Как использовать байтовые массивы как ключи в MapDB
- 3. Рассчитайте возможные ключи приведены функциональные зависимости
- 4. Карта, которая должна содержать все возможные ключи?
- 5. Что все возможные ключи для database.yml
- 6. конкатенировать или «xor» ключи перед хешем, чтобы создать уникальный идентификатор?
- 7. Обратные байтовые заказы
- 8. C++ динамические байтовые подписи
- 9. Как поменять байтовые куски?
- 10. Конкатенация изображения байтовые массивы
- 11. Как найти все возможные ключи-кандидаты из набора суперклеев?
- 12. FOREIGN KEY: не содержит первичные или возможные ключи
- 13. Получить все возможные ключи объекта из списка объектов Javascript/Машинопись
- 14. OR, XOR Расчет (XOR -> XOR -> OR -> JNZ)
- 15. XOR Constraint в Mysql
- 16. Учитывая набор, найдите XOR XOR всех подмножеств
- 17. (не (A XOR B)) XOR C пробой
- 18. c xor результат отличается от javascript xor
- 19. разделить ARGB на байтовые значения
- 20. Строки Java, хранящие байтовые массивы
- 21. SQL-изображения -> байтовые массивы
- 22. Двойные байтовые номера в asp.net
- 23. File.WriteAllBytes, создающий 0 байтовые файлы
- 24. NSData.bytes, возвращающий разные байтовые массивы
- 25. Ввод строк в байтовые массивы
- 26. net.sf.jasperreports.engine.JRException: Байтовые данные не найдены
- 27. XOR encryption with C++
- 28. Альтернатива Xor
- 29. Алгоритм для трассировки дерева XOR
- 30. PHP XOR - как использовать с if()?
Возможно, ваш вопрос относится к сайту обмена новостями для криптографии? –
Если ключ является байтом, возможные клавиши - это возможные значения байта: 0, 1, 2, ..., 254, 255. В чем вопрос? – delnan
Этот вопрос выглядит не по теме, поскольку речь идет о криптографии, не затрагивая самого программирования. –