PDA

View Full Version : لطفا این کد پرل رو به یک زبان دیگر برنامه نویس برگردونید که قابل فهم باشه



zoghal
چهارشنبه 12 مهر 1385, 18:56 عصر
با سلام خدمت تمامی دوستان

اگر امکان دار کد زیر :
sub set_password {
my $auth = shift;
my($pass) = @_;
my @alpha = ('a'..'z', 'A'..'Z', 0..9);
my $salt = join '', map $alpha[rand @alpha], 1..2;
$auth->column('password', crypt $pass, $salt);
}

رو واسه من به یک زبان برنامه نویسی دیگر مثل سی ، پاسکال یا پی اچ پی برکردونید که قابل فهم باشه
ممنون

white fox
چهارشنبه 19 مهر 1385, 21:37 عصر
من یک سالی هست که به این بخش سر نزدم فکر کنم!!!!
خوب بریم سر کد شما....این my که میبینی چیزه خاصی نیست فقط باعث میشه توابع یا متغیر های شما به صورت safe تعریف بشن...پس همه رو حذف کنید.

خط اول: $ به معنای متغییر هستش در پرل Type نداریم و چون فکر میکنم درونش داره رشته ریخته میشه من فرض میگیرم رشته هست.


string auth = shift;


خط دوم:@ به معنای آرایه هست...آرایه ای که اینجا تعریف شده فکر نمیکنم در زبون C وجود داشته باشه....یه چیزی مشابه این هست.


string alpha[66] = ('a',b','c',......

همینطوری خودتون برید تا تش از a تا z و از A تا Z و از 0 تا 9 ...که قرار یک پسورد رندوم تولید کنه..
خط بعدی هم از اون خطا هست که مختص پرل هست!. و داره در واقع به صورت Random چند تا از حروف آرایه رو با هم join میکنه که باعث میشه یه رشته درست بشه..البته join در زبان های دیگه هم داریم که به این قدرت نیست.
خط آخر هم تابع Column فراخوانی میشه که پسورد و پسورد رمز و متغیر salt بهش ارسال میشه.