小编Dbe*_*erg的帖子

使用'sprintf'将十六进制转换为字符串

我试图将数组转换为十六进制,然后将其放入一个字符串变量.在以下循环中printf工作正常,但我不能正确使用sprintf.如何将十六进制值作为ASCII填充到数组中?

static unsigned char  digest[16];
static unsigned char hex_tmp[16];

for (i = 0; i < 16; i++) {
  printf("%02x",digest[i]);  <--- WORKS
  sprintf(&hex_tmp[i], "%02x", digest[i]);  <--- DOES NOT WORK!
}
Run Code Online (Sandbox Code Playgroud)

c

4
推荐指数
2
解决办法
4万
查看次数

二进制字符指针中的字节数

我有一个包含二进制加密字符串的char*(使用AES-128这是加密输出).

我需要弄清楚char*中有多少字节(因为AES 128使用16字节的块大小,它应该是16的倍数).确定包含二进制数据的char*大小的最佳方法是什么?Strlen和sizeof似乎没有在这里产生正确的结果(结果不是16的增量).当我在0和一些任意大数字之间循环使用i时,我可以通过简单地执行printf("%d",ptr [i])来遍历字符串的ascii值.

这里有什么想法?

c encryption

0
推荐指数
1
解决办法
2223
查看次数

标签 统计

c ×2

encryption ×1