C 加密資料

2021-09-10 12:25:17 字數 2008 閱讀 9202

一些機密的資料應得到保護,可以用對稱或不對稱秘鈅來機密這些資料。

通過對稱金鑰,可以使用同乙個金鑰加密解密。與不對稱金鑰的加密相比,加密和解密使用不同的金鑰:公鑰/私鑰。

如果使用乙個公鑰進行加密,就應該使用對應的私鑰進行解密,而不是使用公鑰解密。同樣,如果使用乙個私鑰加密,

就應該使用對應的公鑰解密,而不是使用私鑰解密。不可能從私鑰中計算出公鑰,也不可能從公鑰中計算出私鑰。

涉及案例如下:

1.建立和驗證簽名

public void run()

");//驗證金鑰

if (verifysignature(alicedata, alicesignature, _alicepubkeyblob))

}private void initalicekeys()

public byte createsignature(byte data, cngkey key)

return signature;

}public bool verifysignature(byte data, byte signature, byte pubkey)

return retvalue;

}

2.安全資料交換

using system;

using system.collections.generic;

using system.io;

using system.linq;

using system.security.cryptography;

using system.text;

using system.threading.tasks;

namespace securekeyexchange

; this.publickey = this.diffiehellman.publickey.tobytearray();

}public byte publickey

}public byte iv

}/// /// 加密演算法

///

/// 公鑰

/// 密文

///

public byte encrypt(byte publickey, string secretmessage)

");//設定對稱演算法的金鑰

this.aes.key = derivedkey;

//生成記憶體流

using (var ciphertext = new memorystream())

encryptedmessage = ciphertext.toarray();

}console.writeline($"加密資訊:");

return encryptedmessage;

}/// /// 解密演算法

///

/// 公鑰

/// 密文

///

///

public string decrypt(byte publickey, byte encryptedmessage, byte iv)

");//設定對稱演算法的金鑰

this.aes.key = derivedkey;

//設定向量

this.aes.iv = iv;

//生成記憶體劉

using (var plaintext = new memorystream())

decryptedmessage = encoding.utf8.getstring(plaintext.toarray());

}return decryptedmessage;

}public void dispose()

protected virtual void dispose(bool flag)}}

}//呼叫

static void main(string args)

}console.readline();

}

C 常用資料加密類

using system using system.collections.generic using system.io using system.linq using system.security.cryptography using system.text using system.thre...

C語言練習 資料加密

某個公司採用公用 傳遞資料,資料是四位的整數,在傳遞過程中是加密的,加密規則如下 每位數字都加上5,然後用和除以10的餘數代替該數字,再將第一位和第四位交換,第二位和第三位交換。include void swap int a,int b intmain void int n,i 3 printf 請...

C 金鑰生成和資料加密

1 最近在學習加密相關的東西,在這裡將自己用到的金鑰生成演算法和加密演算法記錄下來 使用ed25519公鑰簽名系統生成簽名,金鑰,向量iv 3 加密演算法 這裡使用openssl aes cbc進行資料的加密 4 流程 5 資料加密和解密 在資料加密和解密的時候遇到乙個問題,就是aes cbc演算法...