原创 可證明安全

語義安全 語義安全表示爲攻擊者即使已知某個消息的密文,也得不出該消息的任何部分信息,即使是1比特的信息 ​ 在完美保密性中,對於等長的消息m,m屬於可被該加密算法加密的消息空間,當m用密鑰k加密後,加密結果無法得到m的任何信息

原创 Go切片(slices)

Go語言的切片(slices),可以高效且方便的處理同類型的數據序列 數組 在瞭解切片之前需要先了解數組 一個數組的定義需要指定長度和元素類型 比如說,[4]int 表示一個存儲四個整數的數組。 數組的長度是固定的。長度是

原创 SMTP協議

SMTP( Simple Mail Transfer Protocol, 簡單郵件傳輸協議 ) 一封郵件是由信封和內容構成 信封包含發送者地址、傳輸模式、一個或多個接收者地址 內容使用頭部和主體組成 頭部的結構是鍵/值對

原创 用PHP寫一個Redis客戶端

用PHP寫一個Redis客戶端 自己挖的坑,不僅要自己跳,更要帶上別人 —— Jun Feng Redis客戶端的核心就是實現RESP協議,在Redis 2.0中,RESP協議已經成爲和Redis服務通信的標準協議。 關於RESP

原创 流水線技術(pipeline)在Redis中的應用

Redis客戶端通過TCP連接或者類似的面向流的連接來和服務器端進行通訊 通常情況下:客戶端發送命令到服務器端,並等待服務器端的返回;服務器端接收到命令,並完成響應操作,發送處理結果數據給客戶端;這樣就完成了完成了一次請求/響應 在我

原创 令人頭疼的JavaScript對象

對象創建 創建對象的方式有兩種 第一種是使用對象字面量的方式,也就是聲明形式 let obj = { key: value //... } 第二種是使用構造方式 let obj = new Object() obj.

原创 PHP學習建議

前言 開啓了PHP的學習,實際上也就是開啓了後端的學習。一入後端深似海,後端的知識太過繁重,需要花很多的時間去學習和研究的。 PHP學習建議 學習來源 通過視頻學習,雖然學習起來比較花時間,但是通過直觀的演示能跳過許多的坑 中國網

原创 Redis協議規範

Redis協議規範 redis的客戶端和redis服務器端的通信協議使用RESP(Redis Serialization Protocol,即Redis序列化協議) RESP是以下幾點的一個折衷方案: 實現簡單 解析快速 易於理解

原创 cJSON文檔解析

cJSON文檔解析 cJSON是一個輕量級且易於擴展的JSON解析開源庫。 github地址爲:https://github.com/DaveGamble/cJSON 安裝與使用 源碼安裝:將cJSON.c與cJSON.h

原创 實現c與shell間的雙向通信

實現c與shell間的雙向通信 管道是應用較爲廣泛的進程間通信的手段,一般來講,管道是單向的,一個進程負責向管道里寫內容,另一個進程負責向管道里讀內容。於是我利用了兩個管道來實現雙向通行。 具體實現 c_conn_shell

原创 linux C 文件相關函數

linux C 文件相關函數 打開文件 #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> int open(const char* pathname,int

原创 BLS簽名-使用PBC庫

BLS簽名-使用PBC庫 本篇博客將介紹如何使用PBC庫實現Boneh-Lynn-Shacham (BLS)簽名方案,該程序的源代碼文件是example/bls.c 我們有三個階爲素數r的羣G1、G2、GT,和一個雙線性映射,它能把一個

原创 PBC快速入門

PBC快速入門 就PBC庫而言,雙線性配對是來自兩個循環羣。G1和G2映射到第三個羣GT,其中每一個羣具有素數階r 在下載的安裝包裏,經過編譯,pbc目錄下有pbc可執行文件,用cli執行程序 輸入 g := rnd(G1); g;

原创 javascript之this綁定

javascript之this綁定 基本知識 call-site 函數或子程序的調用站點並非是它們聲明的地方,而是調用函數或者是通過動態調度調用的位置。 call-stack 調用堆棧是一個方法列表,按調用順序保存所有在運行期被調用的方

原创 sms4的S盒構造c實現

sms4的S盒構造c實現sms4算法中的s盒的構造是由三個函數複合而成的,公式爲S(x)=L(I(L(x))),其中L(x)是仿射變換,而I(x)是逆變換。仿射變換較爲簡單,而在模2的伽羅瓦域上求多項式的逆則比較複雜。基本的假設是:對於數