System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本申請涉及分布式存儲,尤其涉及一種虛擬物品存儲方法、系統、電子設備及存儲介質。
技術介紹
1、隨著現代游戲行業的蓬勃發展,虛擬物品如游戲裝備、道具、貨幣等已成為玩家游戲體驗中不可或缺的元素。這些虛擬物品不僅承載著玩家的努力與成就,更在游戲經濟體系中扮演著重要角色。然而,當前游戲行業普遍采用的集中式數據庫存儲方式在虛擬物品管理方面面臨著諸多挑戰與不足。
2、首先,安全性問題是集中式存儲模式面臨的一大難題。由于所有虛擬物品數據均存儲在單一或少數幾個服務器上,這些服務器一旦遭受黑客攻擊或惡意入侵,玩家的虛擬物品將面臨被盜取、篡改乃至永久損失的風險。這不僅嚴重損害了玩家的利益,也對游戲運營商的穩定性造成了巨大威脅。其次,數據丟失風險是另一個不容忽視的問題,集中式存儲方式高度依賴服務器的穩定性和可靠性,一旦服務器發生故障或數據損壞等不可抗力因素,玩家的虛擬物品數據丟失,可能會面臨無法挽回的損失。數據丟失影響了玩家的游戲體驗,此外,隱私問題也是集中式存儲方式需要面對的重要挑戰。在集中式存儲模式下,玩家的虛擬物品數據被集中存儲在服務器上,這增加了數據泄露的風險。一旦服務器被非法訪問或數據被不當使用,玩家的個人隱私將面臨嚴重威脅。因此,如何安全地存儲和管理虛擬物品數據成為了一個亟待解決的問題。
技術實現思路
1、本申請的主要目的在于克服現有技術的缺點與不足,提供一種虛擬物品存儲方法、系統、電子設備及存儲介質,通過結合了數據加密、數據分片以及分布式存儲技術的優勢,有效防止了數據在存儲和傳
2、為了達到上述目的,本申請采用以下技術方案:
3、第一方面,本申請提供了一種虛擬物品存儲方法,包括下述步驟:
4、獲取虛擬物品數據,并對所述虛擬物品數據進行加密,得到加密后的虛擬物品數據;
5、采用rabin指紋算法對所述加密后的虛擬物品數據進行分片,得到若干個分片的虛擬物品數據;
6、采用分片分布策略將所述若干個分片的虛擬物品數據存儲于多個分布式存儲節點上。
7、作為優選的技術方案,所述獲取虛擬物品數據包括獲取虛擬物品的id、名稱、屬性值和虛擬物品的類型。
8、作為優選的技術方案,所述對所述虛擬物品數據進行加密,包括:
9、采用隨機數生成器生成一個預設長度的密鑰以及生成初始化向量;
10、將所述虛擬物品數據轉化為json格式,作為待加密的明文數據;
11、選擇所述虛擬物品的id作為附加認證數據;
12、基于所述密鑰和所述初始化向量,采用aes-gcm算法對所述待加密的明文數據進行加密,得到密文數據;
13、根據所述附加認證數據、所述初始化向量和所述密文數據,生成一個認證標簽;
14、將所述生成初始化向量、所述密文數據和所述認證標簽進行組合,得到加密后的虛擬物品數據。
15、作為優選的技術方案,所述采用rabin指紋算法對所述加密后的虛擬物品數據進行分片,得到若干個分片的虛擬物品數據;包括:
16、設定目標分片大小;
17、初始化滑動窗口,所述滑動窗口的大小固定為k字節;
18、使用所述滑動窗口遍歷所述加密后的虛擬物品數據,在每個滑動窗口位置,根據rabin指紋算法計算當前窗口內加密后的虛擬物品數據的指紋值;
19、檢查所述指紋值的最后的n位數,若所述最后的n位數全為0,則當前滑動窗口的結束位置存在分片邊界;所述最后的n位數不全為0時,若當前滑動窗口的起始位置與上一個分片邊界之間的距離大于或等于目標分片大小,則強制在當前滑動窗口的結束位置設置一個分片邊界;
20、當檢測到所述分片邊界時,將從上一個分片邊界到當前分片邊界的加密后的虛擬物品數據作為一個獨立的分片虛擬物品數據,并記錄每個分片虛擬物品數據的起始位置和長度;
21、完成一個分片虛擬物品數據后,將所述滑動窗口向前移動一個字節,重復上述步驟,直到整個加密后的虛擬物品數據被完全遍歷并分片。
22、作為優選的技術方案,所述根據rabin指紋算法計算當前窗口內加密后的虛擬物品數據的指紋值,包括:
23、遍歷加密后的虛擬物品數據序列中的每個字節;
24、根據所述物品數據序列中的每個字節在序列中的位置、滑動窗口大小,得到所述物品數據序列中的每個字節的加權值;
25、對所有字節的加權值進行求和,得到加權和;
26、對所述加權和進行模運算,得到當前窗口內加密后的虛擬物品數據的指紋值。
27、作為優選的技術方案,所述采用分片分布策略將所述若干個分片的虛擬物品數據存儲于多個分布式存儲節點上,包括:
28、根據各個存儲節點的存儲容量、cpu處理能力,為存儲節點列表中的各個所述存儲節點分配一個權重;
29、計算所有所述存儲節點的權重值之和,得到總權重和;
30、采用隨機數生成算法將所述若干個分片的虛擬物品數據,生成若干個介于0與所述總權重和之間的隨機數;
31、遍歷所述存儲節點列表,根據所述存儲節點在所述存儲節點列表中的順序,逐一累加權重值,直至權重值首次超過所述隨機數,選擇此時遍歷到的所述存儲節點作為該分片的虛擬物品數據的存儲位置。
32、作為優選的技術方案,還包括:
33、當需要請求訪問虛擬物品數據時,從所述多個存儲節點中獲取所述若干個分片的虛擬物品數據;
34、將所述若干個分片的虛擬物品數據進行解密,得到解密的若干個分片的虛擬物品數據;
35、根據預定義的合并規則,將所述若干個分片的虛擬物品數據進行合并,得到完整的虛擬物品數據。
36、第二方面,本申請提供了一種虛擬物品存儲系統,包括加密模塊、分片模塊以及存儲模塊;
37、所述加密模塊,用于獲取虛擬物品數據,并對所述虛擬物品數據進行加密,得到加密后的虛擬物品數據;
38、所述分片模塊,用于采用rabin指紋算法對所述加密后的虛擬物品數據進行分片,得到若干個分片的虛擬物品數據;
39、所述存儲模塊,用于采用分片分布策略將所述若干個分片的虛擬物品數據存儲于多個分布式存儲節點上。
40、第三方面,本申請提供了一種電子設備,所述電子設備包括:
41、至少一個處理器;以及與所述至少一個處理器通信連接的存儲器;
42、其中,所述存儲器存儲有可被所述至少一個處理器執行的計算機程序指令,所述計算機程序指令被所述至少一個處理器執行,以使所述至少一個處理器能夠執行所述的一種虛擬物品存儲方法。
43、第四方面,本申請提供了一種計算機可讀存儲介質,存儲有程序,所述程序被處理器執行時,實現所述的一種虛擬物品存儲方法。
44、綜上所述,與現有技術相比,本申請提供的技術方案帶來的有效效果至少包括:<本文檔來自技高網...
【技術保護點】
1.一種虛擬物品存儲方法,其特征在于,包括下述步驟:
2.根據權利要求1所述一種虛擬物品存儲方法,其特征在于,所述獲取虛擬物品數據包括獲取虛擬物品的ID、名稱、屬性值和虛擬物品的類型。
3.根據權利要求2所述一種虛擬物品存儲方法,其特征在于,所述對所述虛擬物品數據進行加密,包括:
4.根據權利要求1所述一種虛擬物品存儲方法,其特征在于,所述采用Rabin指紋算法對所述加密后的虛擬物品數據進行分片,得到若干個分片的虛擬物品數據;包括:
5.根據權利要求4所述一種虛擬物品存儲方法,其特征在于,所述根據Rabin指紋算法計算當前窗口內加密后的虛擬物品數據的指紋值,包括:
6.根據權利要求1所述一種虛擬物品存儲方法,其特征在于,所述采用分片分布策略將所述若干個分片的虛擬物品數據存儲于多個分布式存儲節點上,包括:
7.根據權利要求1所述一種虛擬物品存儲方法,其特征在于,還包括:
8.一種虛擬物品存儲系統,其特征在于,包括加密模塊、分片模塊以及存儲模塊;
9.一種電子設備,其特征在于,所述電子設備
10.一種計算機可讀存儲介質,存儲有程序,其特征在于,所述程序被處理器執行時,實現權利要求1-7任一項所述的一種虛擬物品存儲方法。
...【技術特征摘要】
1.一種虛擬物品存儲方法,其特征在于,包括下述步驟:
2.根據權利要求1所述一種虛擬物品存儲方法,其特征在于,所述獲取虛擬物品數據包括獲取虛擬物品的id、名稱、屬性值和虛擬物品的類型。
3.根據權利要求2所述一種虛擬物品存儲方法,其特征在于,所述對所述虛擬物品數據進行加密,包括:
4.根據權利要求1所述一種虛擬物品存儲方法,其特征在于,所述采用rabin指紋算法對所述加密后的虛擬物品數據進行分片,得到若干個分片的虛擬物品數據;包括:
5.根據權利要求4所述一種虛擬物品存儲方法,其特征在于,所述根據rabin指紋算法計算...
【專利技術屬性】
技術研發人員:周桂麟,徐治欽,
申請(專利權)人:廣州盈風網絡科技有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。