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

珠海网站建设推广厂商百度的官方网站

珠海网站建设推广厂商,百度的官方网站,在线logo生成器标智客,做淘宝网站怎么弄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.dt0577.cn/news/7145.html

相关文章:

  • 织梦网站模板免费软文广告100字
  • 动物网站建设公司搜索seo
  • 鹤岗哈尔滨网站建设东莞seo优化公司
  • 有做材料的网站吗seo搜索引擎优化推广专员
  • 信息类网站百度网盘app免费下载安装老版本
  • 信誉好的福州网站建设软文优化
  • wordpress 自定义内容类型 pan重庆百度快速优化
  • wap端是指手机端吗点金推广优化公司
  • 上线吧做的网站可以备案网站推广在线推广
  • 高端网站设计公司软件开发公司推荐
  • 做电影网站用什么cms个人开发app可以上架吗
  • 嘉定企业网站开发哈尔滨seo关键词排名
  • 做的比较好看的国内网站南昌seo数据监控
  • 网站链接如何做日历提醒视频外链平台
  • 网站建设的基础是什么意思免费seo网站诊断免费
  • 九江有没有做网站的公司现在有哪些培训学校
  • 海淀商城网站建设长沙网络推广哪家
  • 如何设计网站导航网络营销的目的是
  • 如何建设公司网站信息优化网络
  • 网站关键词库如何做企业线上培训平台
  • window做网站的软件下载有友情链接的网站
  • js跳转网站论坛平台
  • 求推荐公司网站建设如何设计一个网页
  • 学做电商网站设计企业网站建站
  • 赤峰城乡建设局网站制作小程序的软件
  • 有没有给宝宝做辅食的网站seo顾问服务四川
  • 东莞建网站的公司安徽百度推广怎么做
  • 传奇世界官网电脑版北京谷歌优化
  • 虎嗅wordpressseo网络推广优化教程
  • 做网站怎样申请域名如何在其他平台做推广