女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何保證數據在傳輸的過程中是安全的呢

冬至配餃子 ? 來源:希夏普 ? 作者:jqwang ? 2022-08-19 11:06 ? 次閱讀

如果用戶 A 要和 B 進行數據交換,A 要通過網絡發送一段文字給 B,那如何保證數據在傳輸的過程中是安全的呢?并且即使被別人截獲,也無法知道數據的內容,這就用到加密技術。

對稱密碼體制

發送方用一個密鑰對數據進行加密,接收方使用相同的密鑰進行解密。

? 加密和解密 的密鑰相同

? 如何獲取或交換密鑰,保證密鑰的私密性非常重要

? 密鑰量級是參與者的平方級數,數量比較多

? 適合對大量數據進行加密,加密解密速度快

? 加解密易于通過硬件實現

非對稱密碼體制

每個網絡參與者都有一對密鑰 - 私鑰和公鑰。用戶 A 的公鑰是公開的,任何與 A 通信的人都可以獲取,用來加密數據后發送給 A。A 的私鑰只有自己知道,用來解密數據。

? 公鑰用來加密,私鑰用來解密。公私鑰不相同也不相關

? 公鑰的交換無需保密

? 密鑰的量級為參與者的數目

? 加解密速度慢,不適合大量數據加密,常用于 對稱密碼 協商共享密鑰

? 加解密操作難以通過硬件實現

數字簽名

用戶 A 發送給 B,B 如何確定數據是用戶 A 發送的,而不是別人偽造的數據呢?數字簽名可以鑒別消息的發送者

? 用戶 A 先將要發送的數據進行 MD5 計算生成唯一的 消息摘要 a

? A 用私鑰簽名消息摘要 a

? A 把數據和消息摘要 a 組合起來發送給 B

? B 收到后用 A 的公鑰對消息摘要驗簽得到 a

? B 用 MD5 算法對數據部分進行計算得到消息摘要 b

? B 對 a 和 b 進行比較。如果相同則證明是 A 發送過來的

A 計算數據的消息摘要,并用私鑰進行加密的過程稱為 簽名算法。B 用 A 的公鑰解密消息摘要,并與自己計算的消息摘要進行對比的過程稱為 驗證算法。

如果直接對數據本身直接計算數字簽名,會比較耗時。所以一般做法是先將原數據進行 Hash 運算,得到的 Hash 值就叫做“摘要”。

數字證書

用戶 A 要給用戶 B 發送數據,如何保證用戶 A 拿到的一定是用戶 B 的公鑰呢?

數字證書是標志通訊各方身份信息的一串數字,不是數字身份證而是身份認證機構蓋在數字身份證上的一個章或印。由權威機構-CA(Certificate Authority)發行的,用來識別對方的身份。

X.509是一種通用的證書規范。

常見的數字證書格式:

? .cer .crt - 用于存放證書,它是二進制形式存放的,不含私鑰。

? .pfx .p12 - 存放個人證書/私鑰,通常包含保護密碼,2 進制方式

從證書文件獲得證書對象:

X509Certificate2 cert = new X509Certificate2 (@"c:/myCert.crt" );

// 保護密碼

String password = GetCertPassword();
X509Certificate2 cert = new X509Certificate2 (@"c:/myCert.pfx", password);
從本地證書容器獲得證書對象:

private static X509Certificate2 GetCertificateFromStore(string certName)
{

// Get the certificate store for the current user.
X509Store store = new X509Store(StoreLocation.CurrentUser);
try
{
store.Open(OpenFlags.ReadOnly);

// Place all certificates in an X509Certificate2Collection object.
X509Certificate2Collection certCollection = store.Certificates;
// If using a certificate with a trusted root you do not need to FindByTimeValid, instead:
// currentCerts.Find(X509FindType.FindBySubjectDistinguishedName, certName, true);
X509Certificate2Collection currentCerts = certCollection.Find(X509FindType.FindByTimeValid, DateTime.Now, false);
X509Certificate2Collection signingCert = currentCerts.Find(X509FindType.FindBySubjectDistinguishedName, certName, false);
if (signingCert.Count == 0)
return null;
// Return the first certificate in the collection, has the right name and is current.
return signingCert[0];
}
finally
{
store.Close();
}
}
// 驗證證書有效期
if (cert.NotAfter <= DateTime .Now)
{
throw new ApplicationException (" 用戶證書已經過期!" );
}
// 獲取公鑰
RSA publickKey = (RSA)cert.PublicKey.Key;
RSA privateKey = cert.GetRSAPrivateKey();
public class RSAHelper
{
/// RSA加密
///
///公鑰
///
///
public static string RSAEncrypt(string xmlPublicKey, string m_strEncryptString)
{
RSACryptoServiceProvider provider = new RSACryptoServiceProvider();
provider.FromXmlString(xmlPublicKey);
byte[] bytes = new UnicodeEncoding().GetBytes(m_strEncryptString);
return Convert.ToBase64String(provider.Encrypt(bytes, false));
}

///


/// RSA解密
///
///私鑰
///
///
public static string RSADecrypt(string xmlPrivateKey, string m_strDecryptString)
{
RSACryptoServiceProvider provider = new RSACryptoServiceProvider();
provider.FromXmlString(xmlPrivateKey);
byte[] rgb = Convert.FromBase64String(m_strDecryptString);
byte[] bytes = provider.Decrypt(rgb, false);
return new UnicodeEncoding().GetString(bytes);
}

}



審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 密鑰
    +關注

    關注

    1

    文章

    146

    瀏覽量

    20145
  • 加密技術
    +關注

    關注

    0

    文章

    147

    瀏覽量

    17560
  • 加解密
    +關注

    關注

    0

    文章

    18

    瀏覽量

    6615
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    請問NFC數據傳輸如何保證數據安全

    NFC數據傳輸如何保證數據安全
    發表于 04-07 06:18

    如何確保DMA傳輸過程中數據都是好的?

    有沒有哪位大佬清楚DMA原理的 想請教下,芯片廠是如何確保DMA傳輸過程中數據都是OK的 比如傳輸前后SRAM里面的數據不變,傳輸出來的
    發表于 04-12 06:23

    使用PCM4204進行音頻數據采集的過程中,如何把采集到的音頻數據通過USB傳輸到PC上

    使用PCM4204進行音頻數據采集的過程中,如何把采集到的音頻數據通過USB傳輸到PC上
    發表于 10-15 06:44

    請問ldc1000與主機進行數據傳輸過程中數據傳輸速率設置為多大合適?

    你好,請問ldc1000與主機進行數據傳輸過程中數據傳輸速率設置為多大合適(我的差不多1M),但數據一直不對····
    發表于 01-17 06:37

    熱敏打印機打出數據電流傳輸過程中的獲取

    熱敏打印機打出數據電流傳輸過程中的獲取,什么樣的設備效果最好
    發表于 05-02 23:25

    如何減少SPDIF傳輸過程中時鐘抖動

    `數字音頻信號傳輸相對于模擬音頻信號,有著巨大的優勢,它具有很強的抗干擾能力,無需考慮失真、噪聲、抖晃,串音的因素對傳輸的影響。但是,數字音頻信號傳輸過程中,卻存在著抖動現象。 有資
    發表于 09-28 16:08

    轉:如何減少SPDIF傳輸過程中時鐘抖動

    `數字音頻信號傳輸相對于模擬音頻信號,有著巨大的優勢,它具有很強的抗干擾能力,無需考慮失真、噪聲、抖晃,串音的因素對傳輸的影響。但是,數字音頻信號傳輸過程中,卻存在著抖動現象。 有資
    發表于 09-28 16:28

    有什么辦法能解決高速數據采樣、傳輸過程中遇到的問題?

    有什么辦法能解決高速數據采樣、傳輸過程中遇到的問題?才能不浪費單片機或DSP的端口資源 。
    發表于 04-08 07:07

    如何保證數據傳輸過程中安全(防竊取)?

    實際的業務,難免會跟第三方系統進行數據的交互與傳遞,那么如何保證數據
    發表于 07-28 06:27

    常用的一些API設計的安全方法探討

    如何保證數據傳輸過程中安全(防竊取)?有沒有通用的一套算法以及規范來
    發表于 10-19 10:04

    I/O端口或內部電路信號傳輸過程中采用隔離的方式

    電子產品設計,為了截斷產品內部電路與外界的干擾傳輸通道,或出于安全隔離的考慮,通常會在I/O端口或內部電路信號傳輸過程中采用隔離的方式,
    發表于 11-11 06:32

    串口傳輸過程中停止位是一個什么數據

    串口傳輸過程中停止位是一個什么數據
    發表于 10-12 07:23

    modbus通信的過程中如何實現大數據包的傳輸

    modbus通信的過程中如何實現大數據包的傳輸
    發表于 10-15 12:23

    SMT加工過程中有哪些機器設備可以給客戶保證品質

    SMT產品的品質決定smt加工的市場,smt加工過程品質決定產品的品質。為了防止SMT加工的過程中缺陷的發生,有哪些機器設備可以給客戶保證品質
    的頭像 發表于 09-07 11:27 ?877次閱讀

    Jtti.cc如何確保海外服務器租用過程中數據安全

    租用海外服務器時,確保數據安全需要綜合運用技術措施、合規措施和管理措施。以下是具體建議: 1. 技術措施 數據加密 數據加密是保護
    的頭像 發表于 02-18 15:23 ?259次閱讀