目錄
//base64編碼
void
tevp_encode()
; //
輸出資料緩衝區
int outl; //
輸出資料長度
file *infp; //
輸入檔案控制代碼
file *outfp; //
輸出檔案控制代碼
infp = fopen("
20181234.dat
","rb
");//
開啟待編碼的檔案
if(infp ==null)
outfp = fopen("
20181234.txt
","w
");//
開啟編碼後儲存的檔案
if(outfp ==null)
evp_encodeinit(ctx);
//base64編碼初始化
printf("
檔案\"20181234.dat\" base64編碼後為:\n");
//迴圈讀取原文,並呼叫evp_encodeupdate計算base64編碼
while(1
)
evp_encodefinal(ctx,
out,&outl);//
完成編碼,輸出最後的資料。
fwrite(out,1
,outl,outfp);
printf("%s
",out
); fclose(infp);
fclose(outfp);
printf(
"對檔案\"20181234.dat\" base64編碼完成,儲存到\"20181234.txt\"檔案.\n\n\n");
}//base64解碼
void
tevp_decode()
outfp = fopen("
20181234-1.dat
","wb
");//
開啟解碼後儲存的檔案
if(outfp ==null)
evp_decodeinit(ctx);
//base64解碼初始化
printf("
開始對檔案\"20181234.txt\" base64解碼...\n\n");
//迴圈讀取原文,並呼叫evp_decodeupdate進行base64解碼
while(1
)
evp_decodefinal(ctx,
out,&outl);//
完成解碼,輸出最後的資料。
fwrite(out,1
,outl,outfp);
fclose(infp);
fclose(outfp);
printf(
"對檔案\"20181234.txt\" base64解碼完成,儲存為\"20181234-1.dat\"\n\n\n");
# 命令列
"sno.txt中的內容為\n%s\n
",msg1);
fclose(file);
evp_md_ctx_init(sm3ctx);
evp_digestinit_ex(sm3ctx, evp_sm3(), null);
evp_digestupdate(sm3ctx, msg1, strlen(msg1));evp_digestfinal_ex(sm3ctx, sm3_value, &sm3_len);
evp_md_ctx_reset(sm3ctx);printf(
"sno.txt的摘要值為:\n");
for(i = 0; i < sm3_len; i++)
printf("\n
");}int
main()
編譯指令:gcc sno_sm3.c -o sno_sm3 -i ../zyxopenssl/include -l ../zyxopenssl/lib -ldl -lpthread -lcrypto
09 課堂測試9
軟體需求與分析課堂測試9答題紙 班級 信1905 1學號 20194171姓名 常金悅 1.根據上述描述,識別系統的類,列舉所有的候選類,並選出系統類,並說明原因。候選類 使用者 會議 會議中心 郵局 郵件 會議預定系統 系統類 使用者 會議 會議中心 郵局 郵件 會議預定系統 原因 系統中的人員 ...
9 1課堂筆記
課堂筆記 一 1 file類的構造方法 public file string pathname 根據parent抽象的路徑名和child路徑名字串建立乙個新的file物件。pathname指路徑名字串,parent父抽象路徑名 父抽象路徑名既可以是字串,也可以是file物件 public file ...
9 7課堂筆記
課堂筆記 執行緒的同步 為什麼需要 執行緒同步 執行緒間共享 和資料可以節省系統開銷,提高程式執行效率,但同時也導致了資料的 訪問衝突 問題,如何實現執行緒間的有機互動 並確保共享資源在某些關鍵時段只能被乙個執行緒訪問,即所謂的 執行緒同步 synchronization 就變得至關重要。臨界資源 ...