Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Security.Cryptography; // MD5.Create(), SHA256Managed()
- using System.IO; // File.OpenRead()
- namespace Cryptography {
- class Program {
- //Первое задание
- static void first() {
- string filename = "data.txt";
- var md5 = MD5.Create();
- var sha = new SHA256Managed();
- var stream = File.OpenRead(filename);
- var md5_hash = md5.ComputeHash(stream);
- stream.Seek(0, SeekOrigin.Begin); // Перемещаем указатель на начало файла
- var sha256_hash = sha.ComputeHash(stream);
- Console.WriteLine(BitConverter.ToString(md5_hash).Replace("-", "").ToLowerInvariant());
- Console.WriteLine(BitConverter.ToString(sha256_hash).Replace("-", "").ToLowerInvariant());
- Console.ReadKey();
- }
- static void second() {
- var alice = ECDiffieHellman.Create();
- var bob = ECDiffieHellman.Create();
- var aliceSharedSecret = alice.DeriveKeyMaterial(bob.PublicKey);
- var bobSharedSecret = bob.DeriveKeyMaterial(alice.PublicKey);
- Console.WriteLine(BitConverter.ToString(bobSharedSecret).Replace("-", "").ToLowerInvariant());
- Console.WriteLine();
- Console.WriteLine(BitConverter.ToString(aliceSharedSecret).Replace("-", "").ToLowerInvariant());
- Console.ReadKey();
- }
- static void Main(string[] args) {
- // Алиса и Боб создают пару ключей для использования в операции обмена ключами Диффи-Хелмана
- var alice = ECDiffieHellman.Create();
- var bob = ECDiffieHellman.Create();
- // Алиса высылает Бобу свой открытй ключ
- var bobSharedSecret = bob.DeriveKeyMaterial(alice.PublicKey);
- // Боб высылает Алисе свой открытй ключ
- var aliceSharedSecret = alice.DeriveKeyMaterial(bob.PublicKey);
- // Алиса и Боб используют открытые ключи друг друга для создания секретного соглашения
- // bobSharedSecret и aliceSharedSecret
- Console.WriteLine(BitConverter.ToString(bobSharedSecret).Replace("-", "").ToLowerInvariant());
- Console.WriteLine(BitConverter.ToString(aliceSharedSecret).Replace("-", "").ToLowerInvariant() + "\n");
- // Получаем подпись сообщения
- string message = "Hello world";
- HMACSHA256 alice_hmac = new HMACSHA256(aliceSharedSecret);
- byte[] hash_message = alice_hmac.ComputeHash(Encoding.UTF8.GetBytes(message));
- Console.WriteLine(BitConverter.ToString(hash_message).Replace("-", "").ToLowerInvariant());
- // Проверяем подпись сообщения
- HMACSHA256 bob_hmac = new HMACSHA256(bobSharedSecret);
- byte[] computedHash = bob_hmac.ComputeHash(Encoding.UTF8.GetBytes(message));
- Console.WriteLine(BitConverter.ToString(computedHash).Replace("-", "").ToLowerInvariant());
- Console.ReadKey();
- }
- }
- }
Advertisement