Daha uzun bir dize PHP içine iki dizeleri karıştırın

7 Cevap php

Ben iki dizeleri var ve PHP bunu nasıl yapabilirim, daha büyük dizeye her dizeden karakterleri karıştırmak istiyorsunuz? Ben fazla karakter takas olabilir ancak tahmin olabilir çünkü ben bir şey daha complicated istiyorum.

Ve md5 () yeterli ve geri döndürülemez olduğunu söyleme lütfen. :)

$string1 = '9cb5jplgvsiedji9mi9o6a8qq1';//session_id()
$string2 = '5d41402abc4b2a76b9719d911017c592';//md5()

Herhangi bir yardım için teşekkür ederiz.

EDIT: Ah Rob üzgünüm. Ben iki dizeleri geçebileceği sadece bir fonksiyonu olan bir çözüm varsa çok iyi olurdu, ve bir dize döndürülür.

Döndürülen dize önceki dizeleri hem içermelidir. Bir concatination, ama her dize karakterleri sadece bir büyük birine karışmış edilir.

7 Cevap

Eğer, okunabilir insan kurcalamaya dayanıklı bir dize olun bunun için güvenli bir karma eklemek istiyorum. MD5 gerçekten iyilik dışarı düşüyor, yani sha1 deneyin. Örneğin

$salt="secret";
$hash=sha1($string1.$string2.$salt);
$separator="_";
$str=$string1.$separator.$string2.$separator.$hash;

Eğer insanlar tarafından okunamaz bir dize istiyorsanız, bunu şifrelemek - seçenekler sunar mcrypt uzantısını kontrol.

hash() fonksiyonunun SHA varyantları birini kullanın. SHA2 veya sha256 yeterli ve kesinlikle sizinle gelebilir şey çok daha iyi olmalıdır.

Senin sha1 (dize1, dize2) yapmak neden benzersiz bir değer içine bu değerleri birleştirmek isteyen varsa ben bir şey eksik sürece;

Sana ters çevrilebilir bir şey istiyorum tahmin ediyorum, böylece geri dışarı bu değerleri alabilirsiniz. Bu iki dizeleri engellemeyecek için bir kirli hızlı-ve-teknik, ayrıca onları base64 kodlamak olacaktır:

base64_encode($string1 . $string2);

Herkese teşekkür ederim. Ben tamamen SHA1 unutmuşum - Ben de orada başka ne oldu unuttum, bir problem çözme girdim. :)

Eh, değilse md5 (), ardından sha1 (). :)

Neyse, cenderesinde olanaklar sınırsız, zehir almak.

Ben gerçekten (bazen yararlı olabilir) böyle bir şey yapmak istedim eğer ne yapardım, ben rastgele üzerinde seçilen bir başka öğe eklemek ve onun tarafından md5 dize shuffle olacaktır. ve de buna rastgele eleman yazmak.

Buna Prepend - Örneğin, bize her md5 karaktere biz o hane tarafından bölünmüş ve dize sonuçlanan 1 rakamını eklemek rastgele 2 haneli bir numara, ve 2. basamak ekleyelim.

Ben o tür bir şey bugün yapıldığını yere tökezledi. Ben belirli bir telefon numarasına bazı referans bulmaya çalışıyordu - her yerde ülkenin yerel inet veya değil görünür olsun.

Eğer aynı telefon numarası ile tüm reklamları bulmak için, belirli bir reklam bakarken ben reklamverenler telefon numaralarını verir ve seçeneğine sahip popüler bir seri ilanlar sitesi, ziyaret etti. Şimdi, ne yaptılar, ancak, arama dizesini kodlanmış olduğunu, bu yüzden sen? Telefon = 123.123 arıyor, ama? Telefonu gibi bir şey == FFYx23 = değildir.

Onlar yapmamıştı telefonla 123123 ile kullanıcı sitede herhangi bir reklam gönderdi IF, ben değil, reklamları kontrol dışında, kendi amaçları için bulmak mümkün olacaktır.

Eğer karma ile mesaj bütünlüğü ve özgünlüğünü doğrulamak için arıyorsanız - Eğer HMAC bakmak isteyebilirsiniz - SHA1 ve MD5 ikisini de kullanarak PHP uygulamalarının bol vardır:

http://en.wikipedia.org/wiki/HMAC

EDIT: Aslında, PHP, şimdi bu bir işlevi vardır:

http://us3.php.net/manual/en/function.hash-hmac.php