![]()
From: Volkan YILDIRIM (volkan.yildirim@ankarapatent.com)
Date: Mon 21 Jul 2003 - 08:56:28 EEST
Adodb kutuphanesinin icinde bunu yapabiliyorsun
$a =3D new MD5Crypt();
echo $a->Crypt("hello","sifre");
echo $a->Decrypt($a->Crypt("hello","sifre"),"sifre")
Gibi denemeler yapabilirsin..
Adodb manual 'de gerekli aciklamalar vardir.
Onun disinda hazir yazilmis bir suru fonksiyonda var. altta bir tanesini
yazdim
Ama yeni php versiyonlarinda warning veriyor.
Sen daha fazlasini bulabilirsin..
function WEB_encrypt($pt) {
$realkey =3D mhash(HASH,"sifre");
$td =3D mcrypt_module_open(MCRYPT_DES, "", MCRYPT_MODE_OFB, "");
$iv =3D mcrypt_create_iv(mcrypt_enc_get_iv_size($td),
MCRYPT_DEV_URANDOM);
mcrypt_generic_init($td, $realkey, $iv);
$blob =3D mcrypt_generic($td, mhash(HASH,$pt). $pt);
mcrypt_generic_end($td);
return base64_encode($iv. $blob);
}
function WEB_decrypt($blob) {
$realkey=3Dmhash(HASH,"sifre");
$rawblob=3Dbase64_decode($blob); /* binary blob */
$td =3D mcrypt_module_open(MCRYPT_DES, "", MCRYPT_MODE_OFB, "");
$iv=3Dsubstr($rawblob,0,mcrypt_enc_get_iv_size($td)); /* IV */
if (strlen($iv)<mcrypt_enc_get_iv_size($td))
return FALSE;
$ct=3Dsubstr($rawblob,mcrypt_enc_get_iv_size($td)); /* CipherText */
mcrypt_generic_init($td, $realkey, $iv);
$unblob=3Dmdecrypt_generic($td,$ct);
mcrypt_generic_end($td);
$pt=3Dsubstr($unblob,mhash_get_block_size(HASH));
$check=3Dsubstr($unblob,0,mhash_get_block_size(HASH));
if ($check !=3D mhash(HASH,$pt))
return FALSE;
else
return $pt;
}
-----Original Message-----
From: linux-guvenlik-bounce@liste.linux.org.tr
[mailto:linux-guvenlik-bounce@liste.linux.org.tr] On Behalf Of Serdar
KOYLU
Sent: Sunday, July 20, 2003 5:17 PM
To: linux-guvenlik@liste.linux.org.tr
Subject: [linux-guvenlik] Re: asimetrik kripto ve php
Selamlar...
OpenSSL ile bunu yapabilirsiniz..
Ama size daha pratik bir yontem tavsiye edeyim. Karsiya basit bir key=20
yollayin. Ardindan, sayfaya gomeceginiz bir JavaScript kodu ile girilen=20
parolayla bu keyi basitce encrypt edin. DES vs. gibi karisik
algoritmalar=20
yerine, basit scrambling teknigi kullanabilirsiniz. Daha sonra gene=20
JavaScriptle bunun hash'ini alin. MD5 iyidir bu isler icin. Boylece
clientten=20
size gelen veri her zaman crypt edilmis halde olur. post'tan once, bir
hidden=20
field'e buldugunuz hash degerini yazdiginizda sorununuz bir hayli
giderilmis=20
olacaktir.=20
Unutmayinki, parola sadece sizin ve clientin bildigi bir degerdir. Bunu
key=20
olarak kullanmakta son derece mantiklidir. 8 Harflik bir sifre 64 Bit
eder ki=20
yeterince uzun sayilabilir..=20
Ama eger passwordlari shadow stili sakliyorsaniz, once hash cikarip
sonra bu=20
hash ile yolladiginiz keyi crypt etmelisiniz.=20
Saygi ve sevgiler..
Paz 20 Tem 2003 16:54 tarihinde =FEunlar=FD yazm=FD=FEt=FDn=FDz:
> Merhaba,
>=20
> php'nin mcrypt fonksiyonlari ile oynuyordum, gayet guzel. ancak=20
> sanirim sadece simetrik olarak kapatip acabiliyor.
>=20
> asimetrik sifreleme/acma yapabilecegim bir kutuphane
> var mi php icin?
>=20
> perl icin bolca buldum. Bir ihtimal system cagrilari ile
> o programciklardan istifade etmek cozum olabilir.
>=20
> Saygilar.
> Umut
![]()