国产成人 综合 亚洲欧美,羞羞影院成人午夜爽爽在线,中文字幕av在线一二三区,午夜私人成年影院在线观看,男人把大ji巴放进女人视频

okx

鏈碼加密/解密:HyperledgerFabric最佳實(shí)踐

時間:2023-06-18|瀏覽:370

Hyperledger Fabric是最流行的區(qū)塊鏈開發(fā)框架之一,具有獨(dú)特的定位和一些鮮明的特點(diǎn)。例如,許可制架構(gòu)、可插拔組件、支持私密交易的通道、模塊化以及可擴(kuò)展性,這些特性使它適用于企業(yè)聯(lián)盟鏈應(yīng)用的開發(fā)。

在本文中,我們將介紹如何使用鏈碼加密/解密保存在Hyperledger Fabric區(qū)塊鏈上的敏感數(shù)據(jù)。Hyperledger Fabric區(qū)塊鏈開發(fā)教程:Node.js|Java|Golang。

1、Hyperledger Fabric鏈碼加密/解密的應(yīng)用背景

在企業(yè)環(huán)境中,有時需要處理一些敏感的數(shù)據(jù)。例如,保存信用卡數(shù)據(jù)、銀行信息、生物識別數(shù)據(jù)、健康信息等等。這些敏感數(shù)據(jù)是基于分布式賬本的業(yè)務(wù)應(yīng)用的一部分。最終用戶通常希望即使在數(shù)據(jù)庫被滲透的情況下也能保證這些私密信息的安全性。

在一些傳統(tǒng)的應(yīng)用中,我們會將數(shù)據(jù)庫中的數(shù)據(jù)加密,這樣即使有人偷偷進(jìn)入數(shù)據(jù)庫,也無法理解數(shù)據(jù)的真實(shí)含義。同樣,加密區(qū)塊鏈數(shù)據(jù)庫中的用戶數(shù)據(jù)也是保護(hù)隱私的有效手段?,F(xiàn)在讓我們看看如何使用Node.js鏈碼來加密要寫入?yún)^(qū)塊鏈數(shù)據(jù)庫的數(shù)據(jù)。

在我們開始后續(xù)的實(shí)現(xiàn)之前,需要先指出一點(diǎn):由于引入了額外的加密和解密環(huán)節(jié),這會導(dǎo)致生產(chǎn)環(huán)境中的應(yīng)用處理速度變慢。要進(jìn)行加密/解密處理的數(shù)據(jù)量越大,對應(yīng)用性能的影響就越大。

2、Hyperledger Fabric鏈碼加密/解密的處理流程

在我們開始加密處理之前,先解釋一下要用到的鏈碼的邏輯。示例鏈碼就是一個簡單的用戶注冊和登錄實(shí)現(xiàn)。用戶需要先提供用戶名和密碼進(jìn)行注冊,這些身份信息將以明文形式保存在數(shù)據(jù)庫中。當(dāng)用戶登錄時,將使用保存在數(shù)據(jù)庫中的身份信息進(jìn)行身份驗(yàn)證。因此我們將為這些身份信息添加加密/解密層。

在這個示例中,我將盡力保持代碼的簡單,使用Node.js內(nèi)置的crypto庫。根據(jù)應(yīng)用的不同,你也可以使用定制的加密實(shí)現(xiàn)。

加密方法實(shí)現(xiàn)如下:

function encrypt(data,password){ const cipher = crypto.createCipher("aes256",password); let encrypted = cipher.update(data,"utf8","hex"); encrypted += cipher.final("hex"); return encrypted; }

encrypt方法使用aes256算法加密指定的數(shù)據(jù),它有兩個參數(shù):

data:要加密的數(shù)據(jù)

password:加密口令

解密方法實(shí)現(xiàn)如下:

function decrypt(cipherData,password){ const decipher = crypto.createDecipher("aes256",password); let decrypted = decipher.update(cipherData,"hex","utf8"); decrypted += decipher.final("utf8"); return decrypted.toString; }

decrypt方法使用aes256算法和傳入的加密口令,解密傳入的加密數(shù)據(jù)。

3、Hyperledger Fabric鏈碼加密/解密的實(shí)現(xiàn)代碼

我們之前介紹了用戶注冊/登錄鏈碼的邏輯。當(dāng)用戶注冊時提交其用戶名和登錄密碼,因此我們需要在將用戶的身份數(shù)據(jù)存入Hyperledger Fabric區(qū)塊鏈之前先進(jìn)行加密操作。

async signUp(stub,args){ if(args.length!=3){ return Buffer.from("Incorrect number of arguments. Expecting 3"); }else{ console.info("**Storing Credentials on Blockchain**"); const credentials={userName:args[0],password:args[1]}; let data=JSON.stringify(credentials); let cipher=encrypt(data,args[2]); await stub.putState(args[0],Buffer.from(JSON.stringify(cipher))); console.info("*Signup Successfull..Your Username is "+args[0]); return Buffer.from("Signup Successfull..Your Username is "+args[0]); } }

同樣,當(dāng)?shù)卿洉r,鏈碼需要驗(yàn)證用戶名是否在Hyperledger Fabric的鏈上數(shù)據(jù)庫中存在并檢查密碼是否正確。因此在檢查身份信息之前,需要首先解密Hyperledger Fabric的鏈上數(shù)據(jù):

async login(stub,args){ if(args.length!=3){ return Buffer.from("Incorrect number of arguments. Expecting 3"); } let userName=args[0]; let password=args[1]; let credentialsAsBytes=await stub.getState(args[0]); if(!credentialsAsBytes||credentialsAsBytes.toString.length<=0){ return Buffer.from("Incorrect Username..!"); }else{ let data=JSON.parse(credentialsAsBytes); let decryptData=decrypt(data,args[2]); let credentials=JSON.parse(decryptData); if(password!=credentials.password){ return Buffer.from("Incorrect Password..!"); } console.log("Login Successfull..?"); return Buffer.from("Login Successfull.."); } }

最后我們實(shí)現(xiàn)用戶注冊/登錄鏈碼的路由分發(fā):

async Invoke(stub){ let ret=stub.getFunctionAndParameters; console.info(ret); let method=this[ret.fcn]; if(!method){ console.error("no function of name:"+ret.fcn+" found"); throw new Error("Received unknown function "+ret.fcn+" invocation"); } try{ let payload=await method(stub,ret.params); return shim.success(payload); }catch(err){ console.log(err); return shim.error(err); } }

完整的Hyperledger Fabric代碼可以在這里下載。

原文鏈接:http://blog.hubwiz.com/2020/02/02/hyperledger-fabric-encrypt-state-database/

熱點(diǎn):區(qū)塊鏈 區(qū)塊鏈開發(fā) 框架

歐易

歐易(OKX)

用戶喜愛的交易所

幣安

幣安(Binance)

已有賬號登陸后會彈出下載

« 上一條| 下一條 »
區(qū)塊鏈交流群
數(shù)藏交流群

合作伙伴

裝修裝飾網(wǎng) 皮卡丘資訊 談股票 百悅米 非小號行情 谷歌留痕 培訓(xùn)資訊網(wǎng) 周公解夢 數(shù)字財(cái)經(jīng) 茶百科 美白沒斑啦 百科書庫 今日黃金 寶寶起名 黃金行情 玩票票財(cái)經(jīng) 減肥瘦身吧 金色幣圈 趣玩幣 借春秋 幣圈交流群 代特幣圈 聚幣網(wǎng) 去玩唄SPA 借春秋財(cái)經(jīng) 元宇宙Web 媽媽知道 秒懂域名 幣圈官網(wǎng) 旅游資訊網(wǎng) 天天財(cái)富 幣圈ICO官網(wǎng) 玩合約 愛網(wǎng)站 幣圈論壇 數(shù)字黃金 兼職信息網(wǎng)
非小號交易所排名-專業(yè)的交易行情資訊門戶網(wǎng)站,提供區(qū)塊鏈比特幣行情查詢、比特幣價格、比特幣錢包、比特幣智能合約、比特幣量化交易策略分析,狗狗幣以太坊以太幣玩客幣雷達(dá)幣波場環(huán)保幣柚子幣萊特幣瑞波幣公信寶等虛擬加密電子數(shù)字貨幣價格查詢匯率換算,幣看比特兒火幣網(wǎng)幣安網(wǎng)歐易虎符抹茶XMEX合約交易所APP,比特幣挖礦金色財(cái)經(jīng)巴比特范非小號資訊平臺。
非小號行情 yonghaoka.cn 飛鳥用好卡 ?2020-2024版權(quán)所有 桂ICP備18005582號-1