mysync - 我編寫的單向同步軟件

mysync - 單向同步軟件

項(xiàng)目介紹

這是本人編寫的基于TLS耽梅、RSA龟糕、AES256加密的單向同步軟件徐紧,方向是從客戶端同步到服務(wù)端。同步文件時會自動跳過第一級目錄中以._開頭的文件和目錄帘营。

服務(wù)器和客戶端的通訊使用TLS安全連接進(jìn)行RPC調(diào)用。

源代碼地址

百度網(wǎng)盤下載

https://pan.baidu.com/s/103cgeSFOmPZFvVZOQYdDPw

算法說明

  • 首先由客戶端獲取本地目錄的文件列表逐哈,并且逐一計算各個文件的MD5值芬迄,然后把文件名、MD5列表發(fā)送到服務(wù)器昂秃。
  • 接著服務(wù)器也計算服務(wù)器上的文件禀梳、MD5列表,根據(jù)各個文件的MD5與客戶端上傳的列表進(jìn)行比較肠骆,找出被客戶端修改算途、新增、刪除了的文件蚀腿,然后刪除已被客戶端刪除的文件郊艘,并且向客戶端返回修改、新增文件列表唯咬。
  • 最后客戶端把已經(jīng)修改纱注、新增的文件壓縮打包后上傳到服務(wù)器,服務(wù)器解開壓縮包胆胰,更新服務(wù)器上的文件夾內(nèi)容狞贱。

系統(tǒng)構(gòu)架

本軟件有4個程序構(gòu)成:

  1. mysyncd - 服務(wù)端程序,可以使用參數(shù)改變端口蜀涨,查詢參數(shù):mysyncd -h瞎嬉。
  2. mysync - 客戶端程序。
  3. genca - 生成自簽名的TLS證書對servername-cert.pem厚柳、servername-key.pem氧枣,用法參考:genca -h
  4. genkey - 生成一對RSA2048密鑰name.pub别垮、name.key便监,用法:genkey -k name

配置文件路徑

  • 服務(wù)器:在Linux系統(tǒng)上是:HOME/config/mysyncd/碳想;在Windows系統(tǒng)上是:/path/to/mysyncd/config/mysyncd/
  • 客戶端:在需要同步的目錄中的子目錄 _mysync

配置TLS證書:

  1. genca程序生成servername-cert.pem烧董、servername-key.pem
  2. 服務(wù)端:把servername-cert.pem胧奔、servername-key.pem復(fù)制到config/mysyncd/rootcas逊移,改名為cert.pem、key.pem龙填;
  3. 客戶端:把servername-cert.pem復(fù)制到_mysync中胳泉,改名為cert.pem拐叉。

配置服務(wù)器mysyncd

把客戶端RSA公鑰mykey.pub復(fù)制到config/mysyncd目錄中,編輯對應(yīng)的mykey.json文件指明同步目錄,
注意JSON文件和.pub文件的名字是一一對應(yīng)的扇商。mykey名字可以改變凤瘦,和客戶端的配置相對應(yīng)。默認(rèn)綁定地址為":6080",可使用mysyncd程序的參數(shù)host改變钳吟,參數(shù)格式:-host IP:PORT

服務(wù)端可以配置多對mykey.pub窘拯、mykey.json

配置客戶端mysync

把客戶端的RSA私鑰mykey.key復(fù)制到_mysync目錄中红且,編輯配置文件config.json指明
服務(wù)器地址host,標(biāo)識符key涤姊,標(biāo)識符必須和服務(wù)器上的.pub暇番、.json文件前面的名字以及本地的私鑰文件.key文件的名字相同。

服務(wù)端配置目錄結(jié)構(gòu)

config/mysyncd/
├── mykey.json
├── mykey.pub
└── rootcas
    ├── cert.pem
    └── key.pem

客戶端配置文件結(jié)構(gòu)

_mysync/
├── cert.pem
├── config.json
└── mykey.key

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末思喊,一起剝皮案震驚了整個濱河市壁酬,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌恨课,老刑警劉巖舆乔,帶你破解...
    沈念sama閱讀 210,914評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異剂公,居然都是意外死亡希俩,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,935評論 2 383
  • 文/潘曉璐 我一進(jìn)店門纲辽,熙熙樓的掌柜王于貴愁眉苦臉地迎上來颜武,“玉大人,你說我怎么就攤上這事拖吼×凵希” “怎么了?”我有些...
    開封第一講書人閱讀 156,531評論 0 345
  • 文/不壞的土叔 我叫張陵吊档,是天一觀的道長篙议。 經(jīng)常有香客問我,道長怠硼,這世上最難降的妖魔是什么涡上? 我笑而不...
    開封第一講書人閱讀 56,309評論 1 282
  • 正文 為了忘掉前任,我火速辦了婚禮拒名,結(jié)果婚禮上吩愧,老公的妹妹穿的比我還像新娘。我一直安慰自己增显,他們只是感情好雁佳,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,381評論 5 384
  • 文/花漫 我一把揭開白布脐帝。 她就那樣靜靜地躺著,像睡著了一般糖权。 火紅的嫁衣襯著肌膚如雪堵腹。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,730評論 1 289
  • 那天星澳,我揣著相機(jī)與錄音疚顷,去河邊找鬼。 笑死禁偎,一個胖子當(dāng)著我的面吹牛腿堤,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播如暖,決...
    沈念sama閱讀 38,882評論 3 404
  • 文/蒼蘭香墨 我猛地睜開眼笆檀,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了盒至?” 一聲冷哼從身側(cè)響起酗洒,我...
    開封第一講書人閱讀 37,643評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎枷遂,沒想到半個月后樱衷,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體节槐,經(jīng)...
    沈念sama閱讀 44,095評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡瘫筐,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,448評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了逞怨。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片黔州。...
    茶點(diǎn)故事閱讀 38,566評論 1 339
  • 序言:一個原本活蹦亂跳的男人離奇死亡耍鬓,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出流妻,到底是詐尸還是另有隱情牲蜀,我是刑警寧澤,帶...
    沈念sama閱讀 34,253評論 4 328
  • 正文 年R本政府宣布绅这,位于F島的核電站涣达,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏证薇。R本人自食惡果不足惜度苔,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,829評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望浑度。 院中可真熱鬧寇窑,春花似錦、人聲如沸箩张。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,715評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至饮笛,卻和暖如春咨察,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背福青。 一陣腳步聲響...
    開封第一講書人閱讀 31,945評論 1 264
  • 我被黑心中介騙來泰國打工摄狱, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人无午。 一個月前我還...
    沈念sama閱讀 46,248評論 2 360
  • 正文 我出身青樓媒役,卻偏偏與公主長得像,于是被迫代替她去往敵國和親指厌。 傳聞我的和親對象是個殘疾皇子刊愚,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,440評論 2 348

推薦閱讀更多精彩內(nèi)容