精易论坛

标题: c++处理java AES SHA1PRNG 加密的数据 [打印本页]

作者: 巴啦啦小魔仙    时间: 2023-11-4 21:57
标题: c++处理java AES SHA1PRNG 加密的数据
最近对接接口,由于我不会java,所以用c++来写,但是java AES SHA1PRNG 对密钥做了两次sha1.。。。。导致一直解不出来,百du找的全是水文,无奈自己用CryptoPP做了一下解密

[C++] 纯文本查看 复制代码
std::string AESSha1Prng::aesDecrypt(const std::string &ciphertext, std::string key) {
    //处理java SHA1PRNG密钥 两次sha1后截取前32。。。。。
    std::string output;
    while (output.size() < 16) { //16对应32
        CryptoPP::byte hash[CryptoPP::SHA1::DIGESTSIZE];
        CryptoPP::SHA1().CalculateDigest(hash, (CryptoPP::byte *) key.data(), key.size());
        key.assign((char *) hash, CryptoPP::SHA1::DIGESTSIZE);
        CryptoPP::SHA1().CalculateDigest(hash, (CryptoPP::byte *) key.data(), key.size());
        key.assign((char *) hash, CryptoPP::SHA1::DIGESTSIZE);
        output += key;
    }
    std::string key1 = output.substr(0, 16);
    //用处理过的key解密数据
    CryptoPP::SecByteBlock aesKey(reinterpret_cast<const CryptoPP::byte *>(key1.data()), key1.size());
    CryptoPP::ECB_Mode<CryptoPP::AES>::Decryption decryption;
    decryption.SetKey(aesKey, aesKey.size());
    std::string decryptedText;
    CryptoPP::StringSource stringSource(ciphertext, true,
                                        new CryptoPP::Base64Decoder(
                                                new CryptoPP::StreamTransformationFilter(decryption,
                                                                                         new CryptoPP::StringSink(
                                                                                                 decryptedText)
                                                )
                                        )
    );
    return decryptedText;
}


作者: pipicool    时间: 2023-11-5 04:34
学习一下
作者: zaozi    时间: 2023-11-5 07:32
学习一下
作者: bianyuan456    时间: 2023-11-5 08:03
已经顶贴,感谢您对论坛的支持!
作者: 一指温柔    时间: 2023-11-5 09:15
谢谢分享
作者: 396384183    时间: 2023-11-5 09:59

谢谢分享
作者: yangdoudou    时间: 2023-11-5 10:07
谢谢分享
作者: 一指温柔    时间: 2023-11-6 08:52
支持开源~!感谢分享
作者: xue1995    时间: 2023-11-14 14:12
支持开源~!感谢分享




欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4