我需要一个C++中函数,它生成类似于这个命令在Linux中生成的结果。
echo-n“616161616161616”xxd-r-p sha256sum-b awk‘{print$1}’
这个命令所做的是:给定一个十六进制字符串,将其转换为二进制,并显示二进制数据的sha256散列。
有谁能帮帮我吗?
实际的算法取决于您想要做什么-您可以将十六进制转换为字符串。 我在下面的例子中这样做了。
首先要做的是将字符串转换为二进制,可以通过以下方式实现:
std::string toBin(std::string str){
int s = str.length();
std::string bin = ""
for (int i = 0; i <= n; i++){
int v = int(s[i]);
while (val > 0){
(val % 2)? bin.push_back('1') : bin.push_back('0');
val /= 2;
}
}
std::reverse(bin.begin(), bin.end());
}
然而,代码的下一部分太长了,我很遗憾地无法将其包含在这个答案中。 但是我会把你链接到一个包含(希望)所有你需要的代码的网站。 http://www.zedwood.com/article/cpp-sha256-function
最美好的祝愿。