我正在使用C中的加密库加密字符串(在Linux中使用gcc)。这就是我要做的事情:
ien = encrypt ((unsigned char*)passwd, strlen(passwd), (unsigned char*)cypher_key, (unsigned char*)cypher_salt, cypher_text);
现在,如果我打印出cypher_text的内容,那将是乱码。我需要将它保存到一个文本文件中(它将与其他东西进行哈希处理,以便最终进行模糊处理)。现在这是一个实验。我需要将这个原始二进制数据转换为可在任何文本编辑器中读取的十六进制字符串。
然后,我需要将十六进制字符串转换回原始二进制文件,以便我可以执行此操作并获取原始文本:
decrypt(cypher_text, ien, (unsigned char*)cypher_key, (unsigned char*)cypher_salt, (unsigned char*)passwd);
有人可以指出我如何做到这一点的正确方向吗?
更新有关在C中打印十六进制的建议链接并不完全是我所追求的。我正在接受由加密函数发出的直接不可打印的数据(不是数组中的十六进制值),并尝试将其转换为十六进制数字的字符串,并能够将该十六进制字符串转换回其原始数据二进制形式。我希望这有助于澄清我正在尝试做的一些事情。
我将研究使用base64编码的想法,但我不能在编码中使用标题等。我只需要一根直线。