c - 将 BIGNUM 转换为原始二进制文件
问题描述
我想使用 BIGNUM 的 BN_bn2bin 函数将此十六进制字符串转换为原始二进制文件
BN_hex2bn(&asn1hash, "3031300D060960864801650304020105000420BC5F9353CBB9DCAE86B9F8F68C1C95856DB836ACA2E00C9319716CDF4DD0F5BA");
char *buf = (unsigned char *)malloc(BN_num_bytes(asn1hash));
BN_bn2bin(asn1hash, buf);
FILE *fp;
fp = fopen("ASn1Hash","wb+");
fputs(buf, fp);
fclose(fp);
但是为什么只有“30 31 30 0D 06 09 60 86 48 01 65 03 04 02 01 05”输出到文件中呢?
解决方案
感谢修复代码
BN_hex2bn(&asn1hash, "3031300D060960864801650304020105000420BC5F9353CBB9DCAE86B9F8F68C1C95856DB836ACA2E00C9319716CDF4DD0F5BA");
int num_bytes = BN_num_bytes(asn1hash);
char *buf = (unsigned char *)malloc(num_bytes);
BN_bn2bin(asn1hash, buf);
FILE *fp;
fp = fopen("ASn1Hash","wb+");
fwrite(buf, 1, num_bytes, fp);
fclose(fp);
推荐阅读
- javascript - Django:在 DataTables、ListView 中显示图像
- python - 如何根据结果按字母顺序从大到小组织字符串?
- vue.js - 动态 Vue 组件中的 Vuetify 主题
- jquery - Jquery - 为选项变量赋值
- python - 如何开始测试现有的 python 脚本?
- scala - 将多个 JSON 文件合并为单个 JSON 和 parquet 文件
- ruby - 在 ThreadPool 中保留顺序:如何在特定索引位置将行插入 csv?
- reactjs - react组件的构造函数被调用了两次
- android - Android Studio MediaStore Storage 无法访问文件夹
- javascript - 使用 Express 和 Mongodb 在 Node js 中注册表格