MACTripleDES algoritması

Death_AngeL

Banned
Katılım
27 Haz 2005
Mesajlar
602
Reaction score
0
Puanları
0
Mesajlar için 3DES kullanarak, MAC(Message Authentication Code) hesaplama MACTripleDES ile yapılır. MAC, mesaj kimlik denetimi kodu anlamına gelmektedir. Mesajı gönderenin ve alanın paylaştıkları ortak anahtar kullanılarak, güvenli olmayan bir yoldan sağlanan mesaj üzerinde oynama yapılıp yapılmadığını kontrol etmek amacıyla MAC kullanılır. Mesajı gönderen kişi, mesajın MAC değerini hesaplar, ve mesajla beraber tek bir mesajmış gibi gönderir. Mesajı alan kişi, aynı mesaj için tekrar MAC’i hesaplar ve gelen MAC değeri ile karşılaştırır. MAC hesabının yapılabilmesi ve orjinal mesajın değiştirilebilmesi için ortak anahtarın bilinmesi gerekir. Eğer alıcı tarafında MAC değerleri uyuşursa, mesaj kimlik denetimini geçmiş kabul edilir.
Microsoft .NET Framework’ te MACTripleDES sınıfı ile bu işlem yapılabilmektedir. MACTripleDES, 8,16 ve ya 24 byte uzunluğunda bir anahtar kullanır ve 8 byte uzunluğunda bir hash değeri üretir. MACTripleDES sınıfı, KeyedHashAlgorithm soyut sınıfından türemiştir. Bu sınıfın erişilebilir özellikleri şu şekilde tanımlanır:
CanReuseTransform, şu an ki dönüşüm tekrar kullanılıp kullanılmayacağını belirtir,varsayılan değeri true’dur.
CanTransformMultipleBlocks, aynı anda bir çok veri bloğunun dönüştürülüp dönüştürülemeyeceğini belirtir, varsayılan değeri true’dur.
Hash, hesaplanan hash değerini verir.
HashSize, hesaplanan hash değerinin bit olarak büyüklüğünü gösterir. Varsayılan değeri 64 bittir.
InputBlockSize, kullanılan veri bloğunun bit olarak büyüklüğünü gösterir. Varsayılan değeri 1 bittir.
Key, hash algoritması tarafından kullanılan anahtarı verir, aynı zamanda dışarıdan da bu değeri değiştirebilirsiniz.
OutputBlockSize, algoritma sonunda oluşacak veri bloğunun bit olarak büyüklüğünü gösterir. Varsayılan değeri 1 bittir.
Bu sınıfın erişilebilir metotları ise şunlardır:

Clear, MACTripleDES algoritması tarafından kullanılan kaynakları sisteme geri verir.
ComputeHash, kullanılan veri bloğu için hash değerini hesaplar.
Equals, iki nesnenin birbirine eşit olup olmadığını test eder.
GetHashCode, bellekteki o nesneye özgü bir hash kodu oluşturur.
GetType, bu nesnenin tipini verir.
Initialize, MACTripleDES nesnesinin ilk değerlerini ayarlar.
ToString, şu an ki nesneyi ifade eden bir metin oluşturur.
TransformBlock, belirtilen veri bloğundaki belirtilen alan için hash değerini hesaplar ve belirtilen sonuç veri bloğunun belirtilen alanına hesaplanan bu hash değerini kopyalar.
TransformFinalBlock, belirtilen byte dizisindeki belirtilen alan için hash değerini hesaplar.
Çok basit anlamda, MACTripleDES ile örnek bir hash değeri oluşturalım. Bu örnekten yola çıkarak çok daha karmaşık hash işlemi yapmanız da mümkündür.
 
Kod:
C# 
using System;
using System.Text;
using System.Security.Cryptography;

namespace TestConsoleApplication
{
    public  class TestUygulaması
    {
        static void Main()
        {
            string stringData = 
            "MAC Triple DES ile hash işlemi yapılacak !!";
            MACTripleDES mac = new MACTripleDES();
            mac.Initialize();
            Console.WriteLine( Encoding.UTF8.GetString( 
mac.ComputeHash(
Encoding.UTF8.GetBytes(stringData)) ) );
            Console.Read();
        }
    }
}
VB.NET
Imports System
Imports System.Text
Imports System.Security.Cryptography

Module TestConsoleApplication
    Sub Main()
        Dim stringData As String = 
        "MAC Triple DES ile hash işlemi yapılacak !!"
        Dim mac As New MACTripleDES
        mac.Initialize()
        Console.WriteLine(Encoding.UTF8.GetString(
mac.ComputeHash(
Encoding.UTF8.GetBytes(stringData))) )
        Console.Read()
    End Sub
End Module
C++.NET
#include "stdafx.h"

#using <mscorlib.dll>

using namespace System;
using namespace System::Text;
using namespace System::Security::Cryptography;

int _tmain()
{
    String __gc* stringData = 
    S"MAC Triple DES ile hash işlemi yapılacak !!";
    MACTripleDES __gc* mac = __gc new MACTripleDES();
    mac->Initialize();
    Console::WriteLine( Encoding::UTF8->GetString( 
mac->ComputeHash( 
Encoding::UTF8->GetBytes(stringData))));
    Console::Read();
    return 0;
}
J#
package TestConsoleApplication;

import System.*;
import System.Text.*;
import System.Security.Cryptography.*;

public class TestUygulaması
{
    public TestUygulaması()
    {
    }

    /** @attribute System.STAThread() */
    public static void main(String[] args)
    {
        String stringData = 
        "MAC Triple DES ile hash işlemi yapılacak !!";
        MACTripleDES mac = new MACTripleDES();
        mac.Initialize();
        Console.WriteLine( Encoding.get_UTF8().GetString(
            mac.ComputeHash( 
            Encoding.get_UTF8().GetBytes(stringData) ) ) );
        Console.Read();
    }
}
 
bu ne biçim algoritma yaw türkcell bundan daha kolaydır
 
amaçta o zaten uzunefe. zor çözülmesi hatta çözülememesi
 
Death_AngeL' Alıntı:
amaçta o zaten uzunefe. zor çözülmesi hatta çözülememesi

haklısın amaç çözülmemesi.Efe MD5 i görsen çıldırırsın o zaman Logic hocamın verdiği bi md5 var 1 haftadır uğraşıyorum kırmak için ama illaki bir yerde yanlış bi konbinasyon çıkıyor.
 
zhuahau sep hocam fazla uğraşma yaw.Bak sonra seni de kaybederiz biz eve türkiye ye lazım daha :D :D
 
Geri
Üst