22 Şubat 2017 Çarşamba
Twitter

DES Algoritması İle Metin Şifreleme

Bu yazıda DES algoritması ile metinleri şifreleyeceğiz

DES algoritması en güçlüsü olmasa bile oldukça sık kullanılan bir şifreleme algoritmasıdır.

Verdiğimiz 8 karakterlik anahtara göre şifreyi oluşturmaktadır.

Öncelikle algoritmayı kullanacak test uygulamamızı yazalım:

<table>
    <tr>
        <td style="width: 200px;">
            Şifrelenecek metin
        </td>
        <td>
            <asp:TextBox ID="txtMetin" runat="server" Width="250px" Text="www.daltinkurt.com u arkadaşlarımla paylaşmalıyım" />
        </td>
    </tr>
    <tr>
        <td>
            Anahtar bilgi (8 karakter)
        </td>
        <td>
            <asp:TextBox ID="txtKey" runat="server" Width="100px" Text="123abc98" />
        </td>
    </tr>
    <tr>
        <td>
        </td>
        <td>
            <asp:Button ID="btnSifrele" runat="server" Text="Şifrele" OnClick="btnSifrele_Click" />
            <br />
            <asp:CheckBox ID="cbUrl" runat="server" Text="Url Encode" />
        </td>
    </tr>
    <tr id="trSonuc" runat="server" visible="false">
        <td>
            Şifreli metin
        </td>
        <td>
            <asp:Label ID="lblSonuc" runat="server" />
        </td>
    </tr>
</table>

Algoritmayı kullanacak kodlarımız:

protected void btnSifrele_Click(object sender, EventArgs e)
{
    string metin = txtMetin.Text;
    string key = txtKey.Text;

    lblSonuc.Text = new DES_Sifreleme().Sifrele(metin, key,cbUrl.Checked);
    trSonuc.Visible = true;
}

Şimdi de şifreleme sınıfını paylaşayım:

public class DES_Sifreleme
{
    public string Sifrele(string value, string desKey)
    {
        // DES algoritması ile şifreleme
        // desKey bilgisinin 8 karakterli olması gerekiyor
        UTF8Encoding utf8Enc = new UTF8Encoding();
        DESCryptoServiceProvider des = new DESCryptoServiceProvider();
        des.Key = utf8Enc.GetBytes(desKey);
        des.Mode = CipherMode.ECB;
        ICryptoTransform encryptor = des.CreateEncryptor();
        byte[] arrayByte = utf8Enc.GetBytes(value);
        byte[] enc = encryptor.TransformFinalBlock(arrayByte, 0, arrayByte.Length);
        return Convert.ToBase64String(enc);
    }

    public string Sifrele(string value, string desKey, bool urlencode)
    {
        // şifrelenmiş bilgiyi URL den parametre olarak göndereceksek 
        // Url Encode işleminden geçirmeliyiz
        if (urlencode)
            return System.Web.HttpUtility.UrlEncode(Sifrele(value, desKey));
        else
            return Sifrele(value, desKey);
    }
}

Burada Sifreleme metodunu, şifrelenmiş veriyi URL'den gönderebilmemiz için overload ettik.

URL'den göndermeyeceksek ilk metodu kullanabilirsiniz.

Lütfen dikkat: anahtar değerimiz 8 karakter olmalıdır.

 

 

Değerlendirme

Yazım dilinin sadeliği ve anlaşılabilirliği Puan: 0,00 (0 oy)
Yazıdaki kodların kalitesi Puan: 0,00 (0 oy)
İhtiyaca cevap verme Puan: 0,00 (0 oy)
Tavsiye edilebilirlik Puan: 0,00 (0 oy)
Genel değerlendirme Puan: 0,00 (0 oy)
Puanlamalar 5 üzerindendir.
  • Site Yorumları
  • Facebook Yorumları Facebook Yorumları
Yeni yorum yaz Toplam: 1, Onay bekleyen: 0.
  1. Erokan Canbazoglu

    İnternette kriptoloji ile ilgili araştırma yaparken gördüm, duygulandim :) Devrim hocam keske AES de olsa :) Onu da sen yaz dediğini duyar gibi oldum ve siteyi okuyanlara tavsiyem Stanford Üniversitesi Js implementasyonu yapmış tavsiye ederim. Eline saglık güzel site. Bir de Stanford kriptoloji egitimi 2012 de güzel :)