When using 3DES between PHP and C#, it is to be noted that there are subtle differences that if not strictly observed, will result in annoying problem encrypt/decrypt data.
1), When using a 16 bytes key, php and c# generates total different outcome string. it seems that a 24 bytes key is required for php and c# to work alike.
2), php doesnt have a "padding" option, while c# has 3 (?). My work around is to add nulls i.e. chr(0) to the end of the source string to make its size times of 8, while in c#, PaddingMode.Zeros is required.
3) the key size has to be times of 8, in php, to make it work for c#.
Mcrypt
- Giriş
- Yapılandırma/Kurulum
- Öntanımlı Sabitler
- Mcrypt şifreleri
- Örnekler
- Mcrypt İşlevleri
- mcrypt_cbc — Önerilmiyor: Veriyi CBC kipinde şifreler/çözer
- mcrypt_cfb — Önerilmiyor: Veriyi CFB kipinde şifreler/çözer
- mcrypt_create_iv — Rasgele bir kaynaktan bir ilklendirme vektörü (IV) oluşturur
- mcrypt_decrypt — Belirtilen değiştirgelerle şifreli bir metnin şifresini çözer
- mcrypt_ecb — Önerilmiyor: Veriyi ECB kipinde şifreler/çözer
- mcrypt_enc_get_algorithms_name — Açık algoritmanın adını döndürür
- mcrypt_enc_get_block_size — Açık algoritmanın küme boyunu döndürür
- mcrypt_enc_get_iv_size — Açık algoritmanın ilklendirme vektörü uzunluğunu döndürür
- mcrypt_enc_get_key_size — Açık kipin desteklediği azami anahtar uzunluğunu döndürür
- mcrypt_enc_get_modes_name — Açık kipin ismini döndürür
- mcrypt_enc_get_supported_key_sizes — Açık algoritmanın desteklediği anahtar boylarını listeler
- mcrypt_enc_is_block_algorithm_mode — Açık kipte şifreleme kümeler halinde mi yapılıyor diye bakar
- mcrypt_enc_is_block_algorithm — Açık kipin algoritması bir küme algoritması mı diye bakar
- mcrypt_enc_is_block_mode — Açık kip küme çıktılayan türde mi diye bakar
- mcrypt_enc_self_test — Şifreleme tanıtıcısı ile belirtilen modülün kendi kendini sınamasını sağlar
- mcrypt_encrypt — Salt metin veriyi belirtilen değiştirgelerle şifreler
- mcrypt_generic_deinit — Bir şifreleme tanıtıcısını yeniden ilklendirir
- mcrypt_generic_end — Şifrelemeyi sonlandırır
- mcrypt_generic_init — Şifreleme için gerekli tüm tamponları ilklendirir
- mcrypt_generic — Veriyi şifreler
- mcrypt_get_block_size — Belirtilen şifrenin küme uzunluğunu döndürür
- mcrypt_get_cipher_name — Belirtilen şifrenin ismini döndürür
- mcrypt_get_iv_size — Belirtilen şifre ve kipe özgü IV uzunluğunu döndürür
- mcrypt_get_key_size — Belirtilen şifrenin anahtar uzunluğunu döndürür
- mcrypt_list_algorithms — Desteklenen şifreleri listeler
- mcrypt_list_modes — Desteklenen kiplerin listesini döndürür
- mcrypt_module_close — Şifreleme tanıtıcısını kapatır
- mcrypt_module_get_algo_block_size — Belirtilen algoritmanın küme boyunu döndürür
- mcrypt_module_get_algo_key_size — Belirtilen algoritmanın desteklediği azami anahtar uzunluğunu döndürür
- mcrypt_module_get_supported_key_sizes — Belirtilen algoritmanın desteklediği anahtar boyutlarını listeler
- mcrypt_module_is_block_algorithm_mode — Belirtilen kip, küme algoritmaları ile kullanılabiliryor mu diye bakar
- mcrypt_module_is_block_algorithm — Belirtilen algoritma bir küme algoritması mı diye bakar
- mcrypt_module_is_block_mode — Belirtilen kip bir küme kipi mi diye bakar
- mcrypt_module_open — Kullanılacak kipi ve algoritma modülünü açar
- mcrypt_module_self_test — Belirtilen modülün kendini kendini sınamasını sağlar
- mcrypt_ofb — Önerilmiyor: Veriyi OFB kipinde şifreler/çözer
- mdecrypt_generic — Verinin şifresini çözer
Mcrypt
Anonymous
16-Oct-2009 03:11
16-Oct-2009 03:11
