QT에서는 QCryptograpgicHash 클래스를 이용하여 암호화하는 방법을 제공하고 있다.

QCryptograpgicHash 에서 제공하는 알고리즘은 다음과 같다.

 

MD5 알고리즘 임의의 길이의 값을 입력 받아서 128bit 길이의 hash값을 출력하는 알고리즘이다.

MD5는 단방향 암호화로 원 데이터로 복원을 할 수가 없다. 이로 인하여 MD5 알고리즘으 로 암호화된 값을 보더라도 원 값을 알 수 없다.

SHA 알고리즘 SHA 알고리즘은 MD5알고리즘과 동일한 hash 알고리즘이다. SHA는 MD5보다 느리지만, 좀 더 강한 보안을 제공하고 있다.

비트코인에서 SHA-256을 사용하고 있다.   Keccak SHA-3 국제대회에서 우승한 알고리즘으로 기존 SHA-2보다 뛰어난 성능으로 하드웨어 구축이 가능하다.

1비트를 변경하면 출력값의 각 비트가 50%확률로 변경된다.

 

SHAKE128("The quick brown fox jumps over the lazy dog", 256)
f4202e3c5852f9182a0430fd8144f0a74b95e7417ecae17db0f8cfeed0e3e66e
SHAKE128("The quick brown fox jumps over the lazy dof", 256)
853f4538be0db9621a6cea659a06c1107b1f83f02b13d18297bd39d7411cf10c

 

다음은 QT에서 활용하는 예제이다.

QCryptograpgicHash 클래스를 사용하려면 #include<QCryptograpgicHash> QT += core 를 추가하여야 하고 Qt4.3 이상 버전이여야 한다.   

 

QStringtext="test";
			 qDebug()<<"SHA256:"<<sha(text);
 qDebug()<<"MD5:"<<md(text);
 qDebug()<<"Sha3_512:"<<sha3(text);
 QStringCrypto::sha(constQString&text)
			 {
     QByteArray e = QCryptographicHash::hash(text.toLocal8Bit(),
     QCryptographicHash::Sha256).toBase64();
     return QString::fromUtf8(e);
			 }
 QStringCrypto::md(constQString&text)
			 {
     QByteArray e = QCryptographicHash::hash(text.toLocal8Bit(),
     QCryptographicHash::Md5).toBase64();
     return QString::fromUtf8(e);
			 }
 QStringCrypto::sha3(constQString&text)
			 {
     QByteArray e = QCryptographicHash::hash(text.toLocal8Bit(),
     QCryptographicHash::Sha3_512).toBase64();
     return QString::fromUtf8(e);
			 }

 

output SHA256 : “n4bQgYhMfWWaL+qgxVrQFaO/TxsrC4Is0V1sFbDwCgg=” MD5 : “CY9rzUYh03PK3k6DJie09g==” Sha3_512:

“ns4IbpusSR+sXB0QRsoR1ze5KisuvZPwBde3EBEMCmeCiBZuf755aIOk8umzyp9IT1IdDORkNFzBrslneRScFA==”   Keccak 알고리즘은 5.9.2 부터 사용 가능하다.

 

 

답글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다