В C++ у меня есть зашифрованный AES символ *, который я преобразовываю в его представление HEX перед отправкой его в качестве параметра URL, just as it is done in this question. Теперь я хочу сделать обратное, которое снова преобразует такой hex обратно в char *. Однако я озадачен здесь - использование sprintf с% x или% s приведет к совершенно другому значению. Как я могу преобразовать его снова? Спасибо ...Преобразование AES зашифрованной шестнадцатеричной строки обратно в строку в C++
2
A
ответ
2
Вы можете использовать sscanf()
как это:.?
#define LEN 16 /* 128/8 */
void aes_to_char(char *aes, char *res)
{
int i;
for (i = 0; i < LEN; i++) {
sscanf(aes, "%2hhx", &res[i]);
aes += 2;
}
}
"%2hhx"
означает «2-символьному шестнадцатеричное значение, которые должны быть сохранены в char *
Смежные вопросы
- 1. Преобразование шестнадцатеричной строки в строку
- 2. Преобразование длинной шестнадцатеричной строки в десятичную строку
- 3. Преобразование шестнадцатеричной строки в байты в C++
- 4. Преобразование шестнадцатеричной строки (HEX) в двоичную строку
- 5. Преобразование большой шестнадцатеричной строки в восьмеричную строку
- 6. Преобразование шестнадцатеричной строки в двоичную строку - Java
- 7. Преобразование шестнадцатеричной в юникод строку
- 8. Преобразование шестнадцатеричной строки в base64?
- 9. Преобразование шестнадцатеричной строки в Oracle
- 10. Преобразование шестнадцатеричной строки в разделенную запятой шестнадцатеричную строку C#
- 11. Преобразование шестнадцатеричной строки в структуру
- 12. Преобразование шестнадцатеричной строки в десятичную.
- 13. Преобразование шестнадцатеричной в разл C++
- 14. Преобразование нон шестнадцатеричной строки в байтах C#
- 15. Как расшифровать C# зашифрованной AES строки в Java
- 16. Преобразование строки в шестнадцатеричное представление Unicode и обратно в C++
- 17. Преобразование шестнадцатеричной строки цвета обратно в целое число
- 18. Преобразование шестнадцатеричной строки в шестнадцатеричный тип
- 19. Преобразование двоичной строки обратно в нормальную строку
- 20. Преобразование шестнадцатеричной строки в данные
- 21. Преобразование шестнадцатеричной строки в шестнадцатиричные
- 22. Преобразование шестнадцатеричной строки в изображение
- 23. Преобразование шестнадцатеричной строки в длинную
- 24. Преобразование AES в строку и байт [] C#
- 25. Преобразование шестнадцатеричной строки в пакет в Scapy
- 26. Преобразование шестнадцатеричной строки в Base64 в Swift
- 27. Преобразование ASCII шестнадцатеричной строки в байты массива
- 28. Преобразование шестнадцатеричной строки в байт-массив
- 29. Преобразование шестнадцатеричной строки в байты в crypto ++
- 30. Преобразование шестнадцатеричной строки в ее числовые значения в C#
Что вы пробовали Вы могли бы выделить буфер размером strlen (hex)/2, а затем пересечь строку, разыгрывая пары цифр обратно в char с помощью sscanf и сохраняя их в нужном месте в буфере. Возможно, попробуйте это, а затем покажите нам свой код, если вы не можете заставить его работать. –
Обратный символ 'sprintf' -' sscanf', а не другой 'sprintf'. Другими словами - вы ЧИТАЛИЕ а не ПИСЬМО. В 'sscanf' в строке формата говорится:« Начиная с этой строки, используя этот формат, найдите это значение ». Вы можете понять это оттуда? – Floris