Triple DES (3DES), DES (Data Encryption Standard) şifreleme algoritmasının daha güçlü bir versiyonudur. DES, 1970'lerin sonlarında geliştirilmiş bir simetrik şifreleme algoritmasıydı, ancak zamanla bilgisayarların işlem gücünün artmasıyla DES'in güvenliği zayıfladı. 3DES, DES algoritmasını üç kez kullanarak bu güvenlik sorunlarını aşmayı amaçlar.
VB.Net Örnek kod: Imports System
Imports System.Security.Cryptography
Imports System.Text
Module Module1
Sub Main()
' Anahtar ve IV oluşturma
Dim key As Byte() = Encoding.ASCII.GetBytes("123456789012345678901234") ' 24 byte anahtar
Dim iv As Byte() = Encoding.ASCII.GetBytes("12345678") ' 8 byte IV
' Şifrelenecek veri
Dim data As String = "Bu bir deneme mesajıdır"
Dim dataBytes As Byte() = Encoding.UTF8.GetBytes(data)
' 3DES şifreleme
Dim encryptedData As Byte() = TripleDESEncrypt(dataBytes, key, iv)
Console.WriteLine("Şifreli veri: " & Convert.ToBase64String(encryptedData))
' Şifre çözme
Dim decryptedData As Byte() = TripleDESDecrypt(encryptedData, key, iv)
Console.WriteLine("Çözülmüş veri: " & Encoding.UTF8.GetString(decryptedData))
End Sub
' 3DES şifreleme fonksiyonu
Function TripleDESEncrypt(ByVal data As Byte(), ByVal key As Byte(), ByVal iv As Byte()) As Byte()
Using des3 As New TripleDESCryptoServiceProvider()
des3.Mode = CipherMode.CBC
des3.Padding = PaddingMode.PKCS7
des3.Key = key
des3.IV = iv
Using encryptor As ICryptoTransform = des3.CreateEncryptor()
Return encryptor.TransformFinalBlock(data, 0, data.Length)
End Using
End Using
End Function
' 3DES şifre çözme fonksiyonu
Function TripleDESDecrypt(ByVal data As Byte(), ByVal key As Byte(), ByVal iv As Byte()) As Byte()
Using des3 As New TripleDESCryptoServiceProvider()
des3.Mode = CipherMode.CBC
des3.Padding = PaddingMode.PKCS7
des3.Key = key
des3.IV = iv
Using decryptor As ICryptoTransform = des3.CreateDecryptor()
Return decryptor.TransformFinalBlock(data, 0, data.Length)
End Using
End Using
End Function
End Module C# Örnek Kod : using System;
using System.Security.Cryptography;
using System.Text;
class Program
{
static void Main()
{
// Anahtar ve IV oluşturma
byte[] key = Encoding.ASCII.GetBytes("123456789012345678901234"); // 24 byte anahtar
byte[] iv = Encoding.ASCII.GetBytes("12345678"); // 8 byte IV
// Şifrelenecek veri
string data = "Bu bir deneme mesajıdır";
byte[] dataBytes = Encoding.UTF8.GetBytes(data);
// 3DES şifreleme
byte[] encryptedData = TripleDESEncrypt(dataBytes, key, iv);
Console.WriteLine("Şifreli veri: " + Convert.ToBase64String(encryptedData));
// Şifre çözme
byte[] decryptedData = TripleDESDecrypt(encryptedData, key, iv);
Console.WriteLine("Çözülmüş veri: " + Encoding.UTF8.GetString(decryptedData));
}
// 3DES şifreleme fonksiyonu
static byte[] TripleDESEncrypt(byte[] data, byte[] key, byte[] iv)
{
using (TripleDESCryptoServiceProvider des3 = new TripleDESCryptoServiceProvider())
{
des3.Mode = CipherMode.CBC;
des3.Padding = PaddingMode.PKCS7;
des3.Key = key;
des3.IV = iv;
using (ICryptoTransform encryptor = des3.CreateEncryptor())
{
return encryptor.TransformFinalBlock(data, 0, data.Length);
}
}
}
// 3DES şifre çözme fonksiyonu
static byte[] TripleDESDecrypt(byte[] data, byte[] key, byte[] iv)
{
using (TripleDESCryptoServiceProvider des3 = new TripleDESCryptoServiceProvider())
{
des3.Mode = CipherMode.CBC;
des3.Padding = PaddingMode.PKCS7;
des3.Key = key;
des3.IV = iv;
using (ICryptoTransform decryptor = des3.CreateDecryptor())
{
return decryptor.TransformFinalBlock(data, 0, data.Length);
}
}
}
} PHP Örnek Kod : <?php
// Anahtar ve IV (Initialization Vector) ayarları
$key = "123456789012345678901234"; // 24 byte anahtar
$iv = "12345678"; // 8 byte IV
// Şifrelenecek veri
$data = "Bu bir deneme mesajıdır";
// 3DES şifreleme
$encryptedData = tripleDESEncrypt($data, $key, $iv);
echo "Şifreli veri: " . base64_encode($encryptedData) . "\n";
// Şifre çözme
$decryptedData = tripleDESDecrypt($encryptedData, $key, $iv);
echo "Çözülmüş veri: " . $decryptedData . "\n";
// 3DES şifreleme fonksiyonu
function tripleDESEncrypt($data, $key, $iv)
{
return openssl_encrypt($data, 'DES-EDE3-CBC', $key, OPENSSL_RAW_DATA, $iv);
}
// 3DES şifre çözme fonksiyonu
function tripleDESDecrypt($encryptedData, $key, $iv)
{
return openssl_decrypt($encryptedData, 'DES-EDE3-CBC', $key, OPENSSL_RAW_DATA, $iv);
}
?>