当前位置: 首页 > news >正文

阿克苏交通建设局网站邯郸城融网络技术有限公司

阿克苏交通建设局网站,邯郸城融网络技术有限公司,手机软件开发应用,软件服务开发SHA256 例程 一般文件的完整性要使用md5或者sha进行完整性校验#xff0c;这里提供两个函数#xff0c; intact_update_sha 是计算指定文件SHA值并保存到SHA文件 intact_check_sha 计算文件SHA值并和SHA文件进行对比 编译方法#xff1a; gcc demo.c -lssl -lcrypto #…SHA256 例程 一般文件的完整性要使用md5或者sha进行完整性校验这里提供两个函数 intact_update_sha 是计算指定文件SHA值并保存到SHA文件 intact_check_sha 计算文件SHA值并和SHA文件进行对比 编译方法 gcc demo.c -lssl -lcrypto #include stdio.h #include openssl/sha.h #include string.h #include unistd.h #include sys/stat.h #include sys/types.h #include openssl/md5.h #include stdlib.henum {ERR_OK,ERR_FAIL,ERR_OPEN,ERR_OPEN_SHA,ERR_PATH,ERR_PARAM,ERR_NOEXIST,ERR_NOEXIST_SHA,ERR_KEY,ERR_MALLOC,};#define MAX_BUFFER_SIZE 1024 #define SHA_FILE_PATH /home/hfs/sha/%s.sha #define SHA_FILE_DIR /home/hfs/shastatic int intact_get_sha_file_path(char *path) {int offset 0;for (int i 0; i strlen(path); i) {if (*(path i) /)offset i;}return offset; } int intact_check_sha(char *path) {SHA256_CTX ctx;char buffer[MAX_BUFFER_SIZE];char sha_str[MAX_BUFFER_SIZE];int len 0;FILE *fp NULL;FILE *fp_sha NULL;unsigned char sha[SHA256_DIGEST_LENGTH];char tmp[MAX_BUFFER_SIZE] {0};char sha_file[MAX_BUFFER_SIZE] {0};int offset;if (path NULL) {return ERR_PARAM;}if (access(path, F_OK)) {return ERR_NOEXIST;}strcpy(tmp, path);if (tmp[strlen(tmp) - 1] /) {tmp[strlen(tmp) - 1] \0;}offset intact_get_sha_file_path(tmp);if (offset 0) {return ERR_PATH;}sprintf(sha_file, SHA_FILE_PATH, tmp offset 1);if (access(sha_file, F_OK)) {return ERR_NOEXIST_SHA;}fp fopen(path, r);if (fp NULL) { return ERR_OPEN; }fp_sha fopen(sha_file, r);if (fp NULL) { fclose(fp);fp NULL;return ERR_OPEN_SHA; } SHA256_Init(ctx);while ((len fread(buffer, 1, MAX_BUFFER_SIZE, fp)) 0) {SHA256_Update(ctx, buffer, len); memset(buffer, 0, sizeof(buffer)); } SHA256_Final((sha[0]), ctx);sprintf(sha_str, %02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x,sha[0], sha[1], sha[2], sha[3], sha[4], sha[5], sha[6], sha[7],sha[8], sha[9], sha[10], sha[11], sha[12], sha[13], sha[14], sha[15]);fread(buffer, 1, MAX_BUFFER_SIZE, fp_sha);if (strncmp(sha_str, buffer, 32) 0) {fclose(fp);fp NULL;fclose(fp_sha);fp_sha NULL;return ERR_OK;}fclose(fp);fp NULL;fclose(fp_sha);fp_sha NULL;return ERR_FAIL; } int intact_update_sha(char *path) {SHA256_CTX ctx;char buffer[MAX_BUFFER_SIZE];char sha_str[MAX_BUFFER_SIZE] {0};int len 0;FILE *fp NULL;FILE *fp_sha NULL;unsigned char sha[SHA256_DIGEST_LENGTH];char tmp[MAX_BUFFER_SIZE] {0};char sha_file[MAX_BUFFER_SIZE] {0};int offset;if (path NULL) {return ERR_PARAM;}if (access(path, F_OK)) {return ERR_NOEXIST;}strcpy(tmp, path);if (tmp[strlen(tmp) - 1] /) {tmp[strlen(tmp) - 1] \0;}offset intact_get_sha_file_path(tmp);if (offset 0) {return ERR_PATH;}sprintf(sha_file, SHA_FILE_PATH, tmp offset 1);if (access(SHA_FILE_DIR, F_OK)) {mkdir(SHA_FILE_DIR, S_IRUSR | S_IWUSR | S_IXUSR);}fp fopen(path, r);if (fp NULL) { return ERR_OPEN; }fp_sha fopen(sha_file, w);if (fp NULL) { fclose(fp);fp NULL;return ERR_OPEN_SHA; } SHA256_Init(ctx);while ((len fread(buffer, 1, MAX_BUFFER_SIZE, fp)) 0) {SHA256_Update(ctx, buffer, len); memset(buffer, 0, sizeof(buffer)); } SHA256_Final((sha[0]), ctx);sprintf(sha_str, %02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x,sha[0], sha[1], sha[2], sha[3], sha[4], sha[5], sha[6], sha[7],sha[8], sha[9], sha[10], sha[11], sha[12], sha[13], sha[14], sha[15]);fwrite(sha_str, 1, MAX_BUFFER_SIZE, fp_sha);fclose(fp);fp NULL;fclose(fp_sha);fp_sha NULL;return ERR_OK; }
http://www.hkea.cn/news/14311698/

相关文章:

  • 加强网站建设与管理的通知中国十大室内设计公司
  • 做网站用什么语言九九建筑网66kv架空线路设计视频讲座
  • 胶州网站建设哪里有保定网络运营公司
  • 合作网站开发公司学动漫制作很烧钱吗
  • 国外网站打开很慢陕西app定制
  • 手机网站制作推广福田公司是国企还是私企
  • 制作搜索类网站公司就我一个设计
  • 周村网站建设保险预约
  • 深圳住房建设部官方网站北京做兼职网站
  • dw自己做网站需要什么意思做网站网页的专业
  • 网站设计策划案北京海淀网站制作公司
  • 建网站一般多少钱做个企业网站
  • 成都微网站开发交友软件开发
  • 怎样在门户网站做 推广网站开发服务内容
  • 对接 网站后台青岛专业网站建设公司排名
  • 济宁做网站公司网站加视频播放设计怎么做的
  • 中信建设官方网站wordpress 图片命名吗
  • 西安做网站哪家公司好wordpress 微信h5
  • 营销型网站建设案例分析html首页设计模板
  • 做网站要准备什么建站模板免费
  • 咸阳网站建设电话集和品牌设计公司官网
  • 做ic什么网站好网站上的qq咨询怎么做
  • wordpress网站添加备案号装修公司走心文案
  • 阿里云上的网站空间好用吗企信网官网登录入口全国
  • 邢台网站建设 冀icp备外贸 静态网站 怎么做
  • 郑州做网站首选九零后网络wordpress屏蔽谷歌字体
  • 网站网络营销方式分销系统是什么
  • 有关做生态环境的官方网站seo排名优化培训价格
  • 网站后台打打开空白vmware做网站步骤
  • 网站模块是什么意思网站后台 英语