darksign Posted May 20, 2008 Report Posted May 20, 2008 (edited) vajag paliidziibu, īsti nesaprotu kā ar php uztaisīt to pašu kas ir šajā kodā JAVA (izmēģinājos visādi, bet vēl kaut kas pietrūkst, hashi nav vienādi) JAVA kods public String cipherString(String str) { if(str == null || str.length() == 0) return str; byte bt[]; MessageDigest md = MessageDigest.getInstance("md5"); bt = md.digest(str.getBytes()); return (new BASE64Encoder()).encodeBuffer(bt).trim(); } kāds plz palīdz sho translēt uz php... nav skaidrs kā php var iztaisīt str.getBytes() a = cipherString("abcabcabcabc"); tad a vērtība ir: roIN2u10hryi6bFc2HfIwQ== jebkādas idejas laipni gaidītas Edited May 20, 2008 by darksign
Aleksejs Posted May 20, 2008 Report Posted May 20, 2008 Sveiks! Vai nevarētu būt tā, ka Java gaida ieejā baitu masīvu, ko arī getBytes() dara? Šķiet iekš PHP esošajam md5() varēja vienkārši barot iekšā stringu...
bubu Posted May 20, 2008 Report Posted May 20, 2008 Tev vajag no php funkcijas md5 agriezto hex simbolu virkni pārvērst par 16 baitu masīvu (stringu), kuram pielietot base64 enkodingu.
Aleksejs Posted May 20, 2008 Report Posted May 20, 2008 md5() ir neobligātais parametrs, kuru uzstādot tas atgriež bināro vērtību. Tādēļ varbūt var uzreiz base64_encode(md5('strings',true));
bubu Posted May 20, 2008 Report Posted May 20, 2008 Ah, nu tad jau lieliski. Imho tam vajadzētu sakrist ar Javas kodā iegūto vērtību.
darksign Posted May 20, 2008 Author Report Posted May 20, 2008 md5() ir neobligātais parametrs, kuru uzstādot tas atgriež bināro vērtību. Tādēļ varbūt var uzreiz base64_encode(md5('strings',true)); paldies, izglābi man dienu :)) shis strādā tieši tā kā vajag :))
Recommended Posts