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

网站建设与管理实训课程360识图

网站建设与管理实训课程,360识图,护肤品网站建设分析,凡科建设网站入门版好不SHA256 例程 一般文件的完整性要使用md5或者sha进行完整性校验,这里提供两个函数, intact_update_sha 是计算指定文件SHA值并保存到SHA文件 intact_check_sha 计算文件SHA值并和SHA文件进行对比 编译方法: 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.h>enum {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/sha"static 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/241668/

相关文章:

  • 最好的做任务赚钱网站网络域名怎么查
  • 建设部规范网站百度app关键词优化
  • 骏域网站百度怎么收录网站
  • 网站robots.txt查看九江seo公司
  • 建设阿里妈妈网站搜索引擎排名优化seo
  • 自学网站建设作业创建网站免费
  • 营销网站定制的优势成品网站源码的优化技巧
  • 高职学院网站建设方案广告制作
  • table表格 做的网站营销案例分析报告模板
  • pc端网站做移动适配教育培训机构管理系统
  • 页游传奇排行榜无锡seo优化公司
  • 广西南宁网站设计百度seo算法
  • 网站建设服务怎么样近期国内热点新闻事件
  • 阿里巴巴网站国际站建设seo托管服务
  • 企业网站优化之如何做需求分析网奇seo赚钱培训
  • 施工企业会计制度收入确认规定百度自然排名优化
  • 校园网站建设意义网络营销的特点有哪些
  • 内江做网站哪里便宜google搜索关键词热度
  • 福建省建设银行招聘网站网络推广员压力大吗
  • 动态网站订单怎么做搜索引擎优化营销
  • html5行业网站最近有哪些新闻
  • 做网站业务的怎么寻找客户在哪里打广告效果最好
  • 广东深圳seo服务内容
  • 做网站怎么备案网络服务有限公司
  • 网站主页特效欣赏百度官网下载电脑版
  • php mysql开发网站开发任何小说都能搜到的软件
  • the7 wordpress主题宁波seo外包费用
  • 云南建筑培训网seo刷点击软件
  • 男女做暖网站h5页面制作平台
  • 可以做puzzle的网站百度关键词排名提升工具