Logcat에 암호화 된 텍스트를 표시 할 수 없습니다.

세진 목장

logcat에 암호화하고 표시하는 주요 기능

aes = new ofxLibcrypto();
// start
unsigned char *key = (unsigned char *)"qwertyuiqwertyuiqwertyuiqwertyui";
unsigned char *iv = (unsigned char *)"qwertyuiqwertyui";
unsigned char *plaintext = (unsigned char *)"The quick brown fox jumps over the lazy dog";
unsigned char *ciphertext;
unsigned char decryptedtext[128];
int ciphertext_len, decryptedtext_len;
ciphertext_len = aes->encrypt(plaintext, strlen((char*)plaintext), key, iv, ciphertext);


ofLogNotice("IDB") << "Encrpyted: " << ciphertext;


decryptedtext_len = aes->decrypt(ciphertext, ciphertext_len, key, iv, decryptedtext);
decryptedtext[decryptedtext_len] = (unsigned char) "\0";
ofLogNotice("IDB") << "Decrypted: " << decryptedtext;
// end

프로그램은 성공적으로 암호화되지만 암호문을 표시하려고하면 첫 번째 문자 만 표시됩니다. 루프에서 문자별로 문자를 표시하려고하면 모든 문자가 암호화 된 것으로 표시됩니다. 나는 그것을 고치기 위해 많은 코드를 조사했지만 그들은 이런 식으로 그것을 고칠 수 없습니다. 암호화 및 복호화 기능이 잘 작동하므로 첨부하지 않았지만 필요한 경우 첨부하겠습니다.

도움을 줄 사람은 이미 감사합니다.

Waqar

암호화 된 텍스트를 표시 할 수 없습니다

암호화 된 텍스트 ( ciphertext)는 이진 Blob입니다. A또는 같은 일부 인쇄 가능한 문자가있을 수 ?있지만 ASCII 값이 1, 2, 3 또는 0 인 문자와 같이 인쇄 할 수없는 문자 도있을 수 있습니다.

이진 Blob에서 다음 문자 시퀀스를 고려하십시오.

unsigned char data[] = {0x41, 0x00, 0x42, 0x43};
                     // 'A',  '\0', 'B',  'C'

data문자 포함 'A', '\0'(널 바이트), 'B', 'C'. 인쇄를 시도 하면 다음 문자가 널 바이트이고 해당 문자가 발견되면 즉시 인쇄를 중지하기 때문에 data만 표시 A됩니다.

그렇다면 이진 Blob을 어떻게 표시합니까? 이를 수행하는 일반적인 방법은 바이너리 데이터를 하나 base16또는 다른 기본 으로 인코딩하는 것입니다 .

다음은 base16으로 데이터를 인코딩하는 간단한 함수입니다.

template <typename T>
std::string toBase16(const T itbegin, const T itend)
{
    std::string rv;
    static const char hexmap[16] = { '0', '1', '2', '3', '4', '5', '6', '7',
        '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' };
    rv.reserve(std::distance(itbegin, itend) * 2);
    for (T it = itbegin; it < itend; ++it) {
        unsigned char val = (unsigned char)(*it);
        rv.push_back(hexmap[val >> 4]);
        rv.push_back(hexmap[val & 15]);
    }
    return rv;
}

용법:

int ciphertext_len, decryptedtext_len;
ciphertext_len = aes->encrypt(plaintext, strlen((char*)plaintext), key, iv, ciphertext);

ofLogNotice("IDB") << "Encrpyted: " << toBase16(ciphertext, ciphertext + ciphertext_len);

또 다른 방법은 모든 바이트를 캐스트 int한 다음 10 진수 값을 표시하는 것입니다.

unsigned char data[] = {0x41, 0x00, 0x42, 0x43};
                     // 'A',  '\0', 'B',  'C'
for (int i = 0; i < 4; ++i)
{
    cout << static_cast<int>(data[i]) << ' ';
}
//Output: 65 0 66 67

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

CryptoJS로 암호화 된 암호 텍스트를 페이지에 인쇄 할 수 없습니다.

분류에서Dev

Jasypt 암호화 된 암호를 .properties 파일에 저장할 수 없습니다.

분류에서Dev

암호화 된 스왑에 LUKS 키를 추가 할 수 없습니다.

분류에서Dev

암호없이 이전에 암호화 된 메시지를 해독 할 수 있지만 GPG 개인 키를 내보낼 수 없습니다.

분류에서Dev

Java로 암호화 된 메시지를 해독 할 수 없습니다.

분류에서Dev

일반 텍스트를 암호로 암호화 할 수 없습니다.

분류에서Dev

변환 된 epub 책에 라텍스 꺾쇠 괄호를 표시 할 수 없습니다.

분류에서Dev

Java에서 암호화 된 값 이상의 텍스트를 디코딩 할 수 있습니까?

분류에서Dev

암호화 된 시스템에 Ubuntu Focal 20.04를 어떻게 다시 설치할 수 있습니까?

분류에서Dev

텍스트를 암호화하려고하면 "공개 키를로드 할 수 없음"이 표시됩니다.

분류에서Dev

CloneZilla로 암호화 된 LUKS 드라이브를 복원하면 시스템을 부팅 할 수 없습니다.

분류에서Dev

cryptkeeper에서 encfs 암호화 된 폴더를 마운트 해제 할 수 없습니다.

분류에서Dev

파싱 된 데이터를 보조 화면에 표시 할 수 없습니다.

분류에서Dev

시스템 드라이브에서 Bitlocker 암호화를 활성화 할 수 없습니다.

분류에서Dev

비밀번호 변경-이제 내 계정에 로그인 할 수 없습니다 (전체 디스크 암호화 + 암호화 된 홈 폴더).

분류에서Dev

System.Data.SQLite-암호화 된 데이터베이스에 액세스 할 수 없습니다.

분류에서Dev

TTY에서 암호화 된 $ Home을 마운트하지 않고 로그인 할 수 없습니다.

분류에서Dev

TTY에서 암호화 된 $ Home을 마운트하지 않고 로그인 할 수 없습니다.

분류에서Dev

고정 표시기 : 루트 (SSH 액세스)에 대한 암호를 설정할 수 없습니다

분류에서Dev

AES256 암호화 텍스트를 해독 할 수 없습니다.

분류에서Dev

사용자 암호를 변경했지만 이제 암호화 된 폴더에 액세스 할 수 없습니다.

분류에서Dev

사용자 암호를 변경했지만 이제 암호화 된 폴더에 액세스 할 수 없습니다.

분류에서Dev

암호화 된 btrfs 스냅 샷을 삭제할 수 없습니다.

분류에서Dev

Outlook 2010을 사용하여 암호화 된 메시지를 다른 사람에게 보낼 수 없습니다.

분류에서Dev

암호화 된 Microsoft Excel 문서에 힌트를 추가 할 수 있습니까?

분류에서Dev

단위 테스트에서 암시 적으로 형식화 된 변수에 void를 할당 할 수 없습니다.

분류에서Dev

알림에 더 많은 텍스트를 표시 할 수 없습니다.

분류에서Dev

Internet Explorer (IE)에서 텍스트를 강조 표시 할 수 없습니다.

분류에서Dev

double에서 문자열로 텍스트를 표시 할 수 없습니다.

Related 관련 기사

  1. 1

    CryptoJS로 암호화 된 암호 텍스트를 페이지에 인쇄 할 수 없습니다.

  2. 2

    Jasypt 암호화 된 암호를 .properties 파일에 저장할 수 없습니다.

  3. 3

    암호화 된 스왑에 LUKS 키를 추가 할 수 없습니다.

  4. 4

    암호없이 이전에 암호화 된 메시지를 해독 할 수 있지만 GPG 개인 키를 내보낼 수 없습니다.

  5. 5

    Java로 암호화 된 메시지를 해독 할 수 없습니다.

  6. 6

    일반 텍스트를 암호로 암호화 할 수 없습니다.

  7. 7

    변환 된 epub 책에 라텍스 꺾쇠 괄호를 표시 할 수 없습니다.

  8. 8

    Java에서 암호화 된 값 이상의 텍스트를 디코딩 할 수 있습니까?

  9. 9

    암호화 된 시스템에 Ubuntu Focal 20.04를 어떻게 다시 설치할 수 있습니까?

  10. 10

    텍스트를 암호화하려고하면 "공개 키를로드 할 수 없음"이 표시됩니다.

  11. 11

    CloneZilla로 암호화 된 LUKS 드라이브를 복원하면 시스템을 부팅 할 수 없습니다.

  12. 12

    cryptkeeper에서 encfs 암호화 된 폴더를 마운트 해제 할 수 없습니다.

  13. 13

    파싱 된 데이터를 보조 화면에 표시 할 수 없습니다.

  14. 14

    시스템 드라이브에서 Bitlocker 암호화를 활성화 할 수 없습니다.

  15. 15

    비밀번호 변경-이제 내 계정에 로그인 할 수 없습니다 (전체 디스크 암호화 + 암호화 된 홈 폴더).

  16. 16

    System.Data.SQLite-암호화 된 데이터베이스에 액세스 할 수 없습니다.

  17. 17

    TTY에서 암호화 된 $ Home을 마운트하지 않고 로그인 할 수 없습니다.

  18. 18

    TTY에서 암호화 된 $ Home을 마운트하지 않고 로그인 할 수 없습니다.

  19. 19

    고정 표시기 : 루트 (SSH 액세스)에 대한 암호를 설정할 수 없습니다

  20. 20

    AES256 암호화 텍스트를 해독 할 수 없습니다.

  21. 21

    사용자 암호를 변경했지만 이제 암호화 된 폴더에 액세스 할 수 없습니다.

  22. 22

    사용자 암호를 변경했지만 이제 암호화 된 폴더에 액세스 할 수 없습니다.

  23. 23

    암호화 된 btrfs 스냅 샷을 삭제할 수 없습니다.

  24. 24

    Outlook 2010을 사용하여 암호화 된 메시지를 다른 사람에게 보낼 수 없습니다.

  25. 25

    암호화 된 Microsoft Excel 문서에 힌트를 추가 할 수 있습니까?

  26. 26

    단위 테스트에서 암시 적으로 형식화 된 변수에 void를 할당 할 수 없습니다.

  27. 27

    알림에 더 많은 텍스트를 표시 할 수 없습니다.

  28. 28

    Internet Explorer (IE)에서 텍스트를 강조 표시 할 수 없습니다.

  29. 29

    double에서 문자열로 텍스트를 표시 할 수 없습니다.

뜨겁다태그

보관