計(jì)算機(jī)安全學(xué)第四次實(shí)踐作業(yè)

1.Python實(shí)現(xiàn)RSA算法的加密娶眷、解密、簽名/驗(yàn)證簽名

1.1生成秘鑰

from Crypto.PublicKey import RSA
from Crypto import Random

random_generator = Random.new().read
random_generator

key = RSA.generate(2048,random_generator)# rsa算法生成實(shí)例

# 秘鑰對(duì)的生成
private_pem = key.exportKey()
private_pem

public_pem = key.publickey().exportKey()
public_pem

1.2加密

from Crypto.Cipher import PKCS1_v1_5 as Cipher_pkcs1_v1_5
import base64

message = 'hello , this is a test text'

rsakey = RSA.importKey(public_pem)
cipher = Cipher_pkcs1_v1_5.new(rsakey)#加密
cipher_text = base64.b64encode(cipher.encrypt(message.encode("utf-8")))#序列化
cipher_text

1.3解密

rsakey = RSA.importKey(private_pem)
cipher = Cipher_pkcs1_v1_5.new(rsakey)
text = cipher.decrypt(base64.b64decode(cipher_text), random_generator)#解密
text

with open('private.pem', 'wb') as f:
    f.write(private_pem)
    
with open('public_pem', 'wb') as f:
    f.write(public_pem)

1.4數(shù)字簽名

from Crypto.PublicKey import RSA
from Crypto.Hash import SHA
from Crypto.Signature import PKCS1_v1_5 as Signature_pkcs1_v1_5
import base64

#使用自己的秘鑰對(duì)內(nèi)容進(jìn)行簽名
message = 'hello , this is a test text'
with open('private.pem') as f:
    key = f.read()
    rsakey = RSA.importKey(key)
    signer = Signature_pkcs1_v1_5.new(rsakey)# 構(gòu)建簽名
    digest = SHA.new()
    digest.update(message) # 使用SHA算法獲得摘要
    sign = signer.sign(digest) # 使用摘要簽名
    signature = base64.b64encode(sign) #序列化
    
#使用公鑰解碼簽名
with open('public_pem') as f:
    key = f.read()
    rsakey = RSA.importKey(key)
    verifier = Signature_pkcs1_v1_5.new(rsakey)
    digest = SHA.new()
    # Assumes the data is base64 encoded to begin with
    digest.update(message)
    is_verify = signer.verify(digest, base64.b64decode(signature))
    #對(duì)比解碼后的簽名和原文的摘要已確認(rèn)
    print is_verify

用Python實(shí)現(xiàn)DH秘鑰交換協(xié)議

用crypto模塊實(shí)現(xiàn)

const crypto = require('crypto');

// xiaoming's keys:
var ming = crypto.createDiffieHellman(512);
var ming_keys = ming.generateKeys();

var prime = ming.getPrime();
var generator = ming.getGenerator();

console.log('Prime: ' + prime.toString('hex'));
console.log('Generator: ' + generator.toString('hex'));

// xiaohong's keys:
var hong = crypto.createDiffieHellman(prime, generator);
var hong_keys = hong.generateKeys();

// exchange and generate secret:
var ming_secret = ming.computeSecret(hong_keys);
var hong_secret = hong.computeSecret(ming_keys);

// print secret:
console.log('Secret of Xiao Ming: ' + ming_secret.toString('hex'));
console.log('Secret of Xiao Hong: ' + hong_secret.toString('hex'));
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末川背,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子蛤袒,更是在濱河造成了極大的恐慌熄云,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,183評(píng)論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件妙真,死亡現(xiàn)場(chǎng)離奇詭異缴允,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)珍德,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,850評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門练般,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人锈候,你說我怎么就攤上這事薄料。” “怎么了泵琳?”我有些...
    開封第一講書人閱讀 168,766評(píng)論 0 361
  • 文/不壞的土叔 我叫張陵摄职,是天一觀的道長(zhǎng)誊役。 經(jīng)常有香客問我,道長(zhǎng)谷市,這世上最難降的妖魔是什么势木? 我笑而不...
    開封第一講書人閱讀 59,854評(píng)論 1 299
  • 正文 為了忘掉前任,我火速辦了婚禮歌懒,結(jié)果婚禮上啦桌,老公的妹妹穿的比我還像新娘。我一直安慰自己及皂,他們只是感情好甫男,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,871評(píng)論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著验烧,像睡著了一般板驳。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上碍拆,一...
    開封第一講書人閱讀 52,457評(píng)論 1 311
  • 那天若治,我揣著相機(jī)與錄音,去河邊找鬼感混。 笑死端幼,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的弧满。 我是一名探鬼主播婆跑,決...
    沈念sama閱讀 40,999評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼庭呜!你這毒婦竟也來了滑进?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,914評(píng)論 0 277
  • 序言:老撾萬榮一對(duì)情侶失蹤募谎,失蹤者是張志新(化名)和其女友劉穎扶关,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體数冬,經(jīng)...
    沈念sama閱讀 46,465評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡节槐,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,543評(píng)論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了吉执。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片疯淫。...
    茶點(diǎn)故事閱讀 40,675評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖戳玫,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情未斑,我是刑警寧澤咕宿,帶...
    沈念sama閱讀 36,354評(píng)論 5 351
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響府阀,放射性物質(zhì)發(fā)生泄漏缆镣。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,029評(píng)論 3 335
  • 文/蒙蒙 一试浙、第九天 我趴在偏房一處隱蔽的房頂上張望董瞻。 院中可真熱鬧,春花似錦田巴、人聲如沸钠糊。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,514評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)抄伍。三九已至,卻和暖如春管宵,著一層夾襖步出監(jiān)牢的瞬間截珍,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,616評(píng)論 1 274
  • 我被黑心中介騙來泰國(guó)打工箩朴, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留岗喉,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,091評(píng)論 3 378
  • 正文 我出身青樓炸庞,卻偏偏與公主長(zhǎng)得像沈堡,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子燕雁,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,685評(píng)論 2 360

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