Posts Tagged :

decryption

Java – AES Algoritması ile Encryption ve Decryption 691 618 mezo

Java – AES Algoritması ile Encryption ve Decryption

Merhaba arkadaşlar

Bu yazımda sizlere AES algoritması kullarak nasıl Encryption işlemi yapabilirsiniz en basit haliyle anlatmak istiyorum. Eclipse i açtık yeni bir Java projesi olusturduk sonrasında 2 adet class’ı projemiz içersine ekledik isimleri TEST.java  ve ENCRYPT.java.

Amaç aslında Encrypt.java class ını başka projelerde de kullanılacak şekilde dizayn etmek 😉

Encrypt class ı içersine aşağıdaki kodları ekleyeceksiniz. 🙂

import java.security.*;
import javax.crypto.*;
import javax.crypto.spec.SecretKeySpec;
import sun.misc.*;
public class encrypt {

	private static final String ALGO = "AES";
	private static final byte[] keyValue =  new byte[] 
        { 'M', 'e', 'Z', 'O', 'b', 'l', 'o','g', 's', 'B', 'e','s', 't', 'K', 'e', 'y' };

	public static String encrypt(String Data) throws Exception {
		Key key = generateKey();
		Cipher c = Cipher.getInstance(ALGO);
		c.init(Cipher.ENCRYPT_MODE, key);
		byte[] encVal = c.doFinal(Data.getBytes());
		String encryptedValue = new BASE64Encoder().encode(encVal);
		return encryptedValue;
	}
	public static String decrypt(String encryptedData) throws Exception {
		Key key = generateKey();
		Cipher c = Cipher.getInstance(ALGO);
		c.init(Cipher.DECRYPT_MODE, key);
		byte[] decordedValue = new BASE64Decoder().decodeBuffer(encryptedData);
		byte[] decValue = c.doFinal(decordedValue);
		String decryptedValue = new String(decValue);
		return decryptedValue;
	}
	private static Key generateKey() throws Exception {
		Key key = new SecretKeySpec(keyValue, ALGO);
		return key;
	}
}

Ardından test.java yani çalıştırılacak olan class ımız içersinde main metodu bulunduran class içersinede aşağıdaki kodları ekliyorsunuz. Encrypt classı içersinde oluşturduğumuz metotları çağırıyoruz.

public class test {
	public static void main(String[] args) {
		String password = "Hello Word İt's MEZO Blog";
		String passwordEnc;
		String passwordDec;
		try {
			passwordEnc = encrypt.encrypt(password);
			passwordDec = encrypt.decrypt(encrypt.encrypt(password));

			System.out.println("Plain Text : " + password);
			System.out.println("Encrypted Text : " + passwordEnc);
			System.out.println("Decrypted Text : " + passwordDec);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

Ve işlemimiz bitti işte bu kadardı 🙂  artık Run As Java Application diyerek çalıştırıyor aşağıdaki çıktımızı alıyoruz.

 

Programımızın Çıktısı
Encrypt edilecek Text : Hello World It’s MEZO Blog
Encrypt edilmiş Text : 2loMo4Zhrtsbqg/4NOk1MpYp1uVbXkDwUNZKnons30o=
Decrypt edilmiş Text : Hello World It’s MEZO Blog

 

Umarım Yararlı Olmuştur

Bilgiyle Kalın

M.Zeki OSMANCIK

C# ve PHP 3DESCrypto 691 618 mezo

C# ve PHP 3DESCrypto

Merhaba arkadaşlar
Bu kez sizlere şifreleme yöntemi olan 3DES(Triple Data Encryption Algorithm diye geçer ancak DES kısaltması Data Encryption Standard dan gelmektedir.) şifreleme yönteminin kodlarını vermek istiyorum belki bu yazıya daha sonra ayrıntılı şekilde bunun ne olduğu ile ilgilide birşeyler ekleyebilirim. 🙂 PHP ve C# için kodları aşağıda sizlerle paylaşıyorum
PHP

function encrypt($string) {
//Key
$key = "xxxxxxxx";

//Encryption
$cipher_alg = MCRYPT_TRIPLEDES;

$iv = mcrypt_create_iv(mcrypt_get_iv_size($cipher_alg,MCRYPT_MODE_ECB), MCRYPT_RAND);

$encrypted_string = mcrypt_encrypt($cipher_alg, $key, $string, MCRYPT_MODE_ECB, $iv);
return base64_encode($encrypted_string);
return $encrypted_string;
}

function decrypt($string) {
$string = base64_decode($string);

//key
$key = "xxxxxxxx";

$cipher_alg = MCRYPT_TRIPLEDES;

$iv = mcrypt_create_iv(mcrypt_get_iv_size($cipher_alg,MCRYPT_MODE_ECB), MCRYPT_RAND);

$decrypted_string = mcrypt_decrypt($cipher_alg, $key, $string, MCRYPT_MODE_ECB, $iv);
return trim($decrypted_string);
}

C# encryption:

using System;
using System.Security.Cryptography;
using System.Text;

public class Crypto3DES
{
public Crypto3DES()
{

}

private System.Text.Encoding encoding;

public string Key
{
get
{
return "xxxxxxxx";
}
}

public System.Text.Encoding Encoding
{
get
{
if( encoding == null )
{
encoding = System.Text.Encoding.UTF8;
}
return encoding;
}

set
{
encoding = value;
}
}

public string Encrypt3DES( string strString )
{
DESCryptoServiceProvider DES = new DESCryptoServiceProvider();

DES.Key = Encoding.GetBytes( this.Key );
DES.Mode = CipherMode.ECB;
DES.Padding = PaddingMode.Zeros;

ICryptoTransform DESEncrypt = DES.CreateEncryptor();

byte[] Buffer = encoding.GetBytes(strString);

return Convert.ToBase64String(DESEncrypt.TransformFinalBlock(Buffer, 0, Buffer.Length));
}

public string Decrypt3DES( string strString )
{
DESCryptoServiceProvider DES = new DESCryptoServiceProvider ();

DES.Key = Encoding.UTF8.GetBytes( this.Key );
DES.Mode = CipherMode.ECB;
DES.Padding = PaddingMode.Zeros;
ICryptoTransform DESDecrypt = DES.CreateDecryptor();

byte[] Buffer = Convert.FromBase64String(strString);
return UTF8Encoding.UTF8.GetString( DESDecrypt.TransformFinalBlock(Buffer, 0, Buffer.Length) );
}
}

Umarım Yararlı Olur
Bilgiyle Kalın
M.Zeki Osmancık

    Join our Newsletter

    We'll send you newsletters with news, tips & tricks. No spams here.