В общем написал по урокам функции шифрования и дешифрования а они работают не корректно. Точнее:
Если я передаю ему строчку 63 символа и меньше, он шифрует и дешифрует нормально.
Если же я ему передам строчку более 63 символов он отказывается корректно работать, шифрует, но не дешифрует.
Вот код.
C++ (Qt)
p="123 ABC БЦА 11! 123 ABC БЦА 11! 123 ABC БЦА 11! 123 ABC БЦА 11!";//63символа
QString en=encrypt(p);
QString den=dencrypt(en);
p="Строчка:"+p+"\n Ен:"+en+"\n Ден:"+den;
uiR.textBrowser->setPlainText(p);
шифруем:
C++ (Qt)
QString rrr::encrypt(const QString & strToEnrypt){
QCA::Initializer init;
QCA::SecureArray arg = QVariant(strToEnrypt).toByteArray();
if(QCA::isSupported("aes128-cbc-pkcs7")){
QCA::SymmetricKey key(QVariant("16").toByteArray());
QCA::InitializationVector iv(QVariant("16").toByteArray());
QCA::Cipher cipher(QString("aes128"),QCA::Cipher::CBC,
QCA::Cipher::DefaultPadding,
QCA::Encode,
key, iv);
QCA::SecureArray u = cipher.update(arg);
QCA::SecureArray f = cipher.final();
QCA::SecureArray cipherText = u.append(f);
return cipherText.toByteArray();
}
return "NET";
}
дешифруем
C++ (Qt)
QString rrr::dencrypt(const QString & strToEnrypt){
QCA::Initializer init;
QCA::SecureArray cipherText = QVariant(strToEnrypt).toByteArray();
if(QCA::isSupported("aes128-cbc-pkcs7")){
QCA::SymmetricKey key(QVariant("16").toByteArray());
QCA::InitializationVector iv(QVariant("16").toByteArray());
QCA::Cipher cipher(QString("aes128"),QCA::Cipher::CBC,
QCA::Cipher::DefaultPadding,
QCA::Decode,
key, iv);
QCA::SecureArray plainText = cipher.update(cipherText);
plainText = cipher.final();
return QCA::SecureArray(cipher.process(cipherText)).data();
}
return "NET";
}
подскажите, что я не так сделал?