Re: How to encrypt string and write to txt
Nikos Karavidas <[email protected]> Tue, 29 Nov 2022 10:35:15 -0800 (PST)
| Newsgroups | gmane.comp.encryption.cryptopp |
|---|---|
| Message-ID | <[email protected]> |
Ok so i got this figured out with this:
stringstream ss;
for (int i = 0; i < ciphertext.size(); ++i)
{
ss << hex << (0xFF & static_cast<byte>(ciphertext[i])) << " ";
}
string mystr = ss.str();
cout << "mystr: " << mystr << endl;
and it works fine, all characters are printed in hex and i can write them
in a txt file, no problem. BUT when i read them from the txt file, i dont
know how to convert them back from hex, so i can do the decryption.
On Tuesday, November 29, 2022 at 8:23:19 PM UTC+2 Nikos Karavidas wrote:
> I 've got the following function:
> void encrypt(string ivInString, string keyInString, const string
> &filename_in, const string &filename_out)
> {
> SecByteBlock iv(reinterpret_cast<const byte*>(&ivInString[0]),
> ivInString.size());
> SecByteBlock key(reinterpret_cast<const byte*>(&keyInString[0]),
> keyInString.size());
>
>
> CFB_Mode<AES>::Encryption e;
> e.SetKeyWithIV(key.data(), key.size(), iv.data());
>
> ifstream in{ filename_in, ios::binary };
> ofstream out{ filename_out, ios::binary };
>
> FileSource f{ in, /*pumpAll=*/true, new StreamTransformationFilter{ e,
> new FileSink{out} } };
> }
>
> and a similar for decrypting, and they work fine, but this is to encrypt
> any sort of file, which is my only way of encrypting the txt, but its not
> what i need. What i need is to encrypt a string. The 1st answer in this
> link:
> https://stackoverflow.com/questions/12306956/example-of-aes-using-crypto
> , prints all the ciphered text in hex in the line that says "cout << "0x"
> << hex << (0xFF & static_cast<byte>(ciphertext[i])) << " ";". But im not
> sure how that hex part even works. Do you know how i can write that into a
> txt file?
>
>
>
> On Tuesday, November 29, 2022 at 7:43:08 PM UTC+2 [email protected]
> wrote:
>
>> Could you try to write a minimal working example in a separate project
>> and share the code if you still have any issues? Try to write that
>> encryption/decryption routines yourself line by line instead of copy&paste
>> any examples.
>>
>> The idea is simple: you read data source, you put data through the filter
>> (which does the encryption or decryption) and put the result to the sink.
>> So you should setup a source: read file in buffer and use StringSource or
>> VectorSource or use FileSource. Then you should prepare an encryption
>> filter (StreamTransformationFilter) with appropriate options (you could
>> learn it from example code). Then you put the data into the Sink.
>> https://www.cryptopp.com/wiki/FileSource
>>
>> Remember to use same key & iv for decryption. Also binary/text mode is
>> important when reading files. Also remember to use same mode (CBC, ECB,
>> etc.) for both encryption/decryption algorithm. Use authenticated
>> encryption to catch message checksum errors.
>>
>> Try to experiment with pipelining, e.g. calculating messag digest and
>> printing it in hex. When you get the strong feeling what works and what
>> isn't you could easily use any encryption/decryption algorithm in Cryptopp.
>> Just take some time to read wiki and experiment with library primitives.
>> And good luck with that!
>> https://www.cryptopp.com/wiki/Pipelining
>>
>> вторник, 29 ноября 2022 г. в 23:01:33 UTC+7, [email protected]:
>>
>>> Not sure what you mean by format, i just use something like
>>> "myFileStream << cipher", and then read it back again. Do you mean that the
>>> txt file should be utf-8 or something like that? What would be the right
>>> way to write the ciphered string to the txt file and read it afterwards?
>>> Thanks a lot for answering btw.
>>>
>>> On Tuesday, November 29, 2022 at 4:15:37 PM UTC+2 [email protected]
>>> wrote:
>>>
>>>> I think I have an idea of what is happening to you, what happens that
>>>> you must decrypt in the same format that you encrypted, since that happened
>>>> to me at some point, you must also see the format in how you return the txt
>>>> file, or the text of txt if it is the same format that is needed to decrypt
>>>> it. Greetings.
>>>>
>>>> El lunes, 28 de noviembre de 2022 a las 14:30:04 UTC-5,
>>>> [email protected] escribió:
>>>>
>>>>> Ok so based on the example from this link (
>>>>> https://www.cryptopp.com/wiki/Advanced_Encryption_Standard), i
>>>>> have tried encrypting a "plain" string into a "cipher" string and writing
>>>>> that "cipher" string to a .txt file in one program, and in another program
>>>>> afterwards reading that same .txt file into a string and decrypting it. But
>>>>> when i cout that "recovered" string, it is just random characters and not
>>>>> my original "plain" string. I think the problem starts when i attempt to
>>>>> get the "cipher" string in the .txt file, but not sure. Any help is greatly
>>>>> appreciated. Thanks in advance.
>>>>
>>>>
--
You received this message because you are subscribed to the Google Groups "Crypto++ Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
To view this discussion on the web visit https://groups.google.com/d/msgid/cryptopp-users/216a9025-24a7-4b8f-8573-7e5526c01456n%40googlegroups.com.