PDA

View Full Version : کد کردن حروف



googoli
یک شنبه 08 اردیبهشت 1392, 19:31 عصر
سلام
من می خوام یه سری از حروف رو تبدیل کنم به کد دلخواه خودم مثلا اگر کلمه علی رو تایپ کرد تبدیل کنه به 110 فقط می خوام این کار به صورت حرفی باشه مثلا عدد 70 جایگزین حرف ع بشه باید چطوری این کار رو بدم

MRmoon
یک شنبه 08 اردیبهشت 1392, 19:49 عصر
خوب این هر دوتا هم عدد بهحرف و هم عدد تولید شده به حروف رو بر میگردونه (این مال 32 حرف الفباست)

function replace($str)
{
$per = array('ا','ب','پ','ت','ث','ج','چ','ح','خ' ,'د','ذ','ر','ز','ژ','س','ش','ص','ض','ط' ,'ظ','ع','غ','ف','ق','ک','گ','ل','م','ن' ,'و','ه','ی');
$num = array('0','2','3','4','15','18','28','8','63','10' ,'66','12','26','182','30','144','51','306','133', '340','336','242','46','216','575','390','162','25 2','232','690','186','800');
if(is_numeric($str))
{
$str = str_replace($num,$per,$str);
}
else
{
$str = str_replace($per,$num,$str);
}
return $str;
}
//string to num
echo replace('بپ');
echo "<br/>";
//num to string
echo replace("23");

googoli
یک شنبه 08 اردیبهشت 1392, 20:40 عصر
این کد خطا داره
مثلا اگر کلمه امیر رو بهش بدیم این کد رو بر می گردونه 025 280012
ولی نمی تونه جمله رو درست برگردونه
یا بهتر این طور بگم
من اول می خوام حروف رو از هم جدا کنم و بعد تبدیل به کدش کنم چطور میشه این کار رو انجام داد ؟
مثل این دستور که شما اجرا کردید

echo replace('بپ');
وقتی به درو ن تابع میره حرف ب و حرف پ جدا از هم بشوند یا بهتر بگم می خوام با حلقه foreach پردازشم رو انجام بدم

abolfazl-z
یک شنبه 08 اردیبهشت 1392, 21:02 عصر
خوب دوستان اگر برنامه اش رو بنویسیم بدرد می خوره ! یعنی به هش کردن رشته میرسه ؟

googoli
یک شنبه 08 اردیبهشت 1392, 22:01 عصر
اولا من نمی خوام بجای هش ازش استفاده کنم
ثانیا بنظر من ارزشش رو داره چون کسی نمی تونه حدس بزنه که تو ذهن شما یا من چی میگذره

abolfazl-z
یک شنبه 08 اردیبهشت 1392, 22:18 عصر
اولا من نمی خوام بجای هش ازش استفاده کنم
ثانیا بنظر من ارزشش رو داره چون کسی نمی تونه حدس بزنه که تو ذهن شما یا من چی میگذره
دقیقا درسته.
چون من چند روز پیش به این فکر می کردم.
دوست من بهترین کار این هست که هر کاراکتر رو به چند کاراکتر تبدیل کنی (من این کار رو توی زبانی دیگر انجام دادم و نتیجه گرفتم) ولی باید مقدار کاراکتر های تبدیلی یکسان باشد یعنی :

برای مثال کد زیر رو 'کد' می کنیم :


abc
کد گذاری با 4 حرف :
#$%@@@!#$%$&
کد بالا اگر تبدیل بشه میشه بصورت زیر :


a = $%$&
b = @@!#
c = #$%@

خوب میتونی با بیشتر کردن حروف امنیت رو بالا ببری ولی هک شدن این هم خودش دردسر هست و شاید هم هک نشه(اگر به تابع دیکد دسترسی نداشته باشه ها)

googoli
یک شنبه 08 اردیبهشت 1392, 22:18 عصر
یه تکه کد پیدا کردم که تقریبا کاری رو که می خوام می کنه


function getWords($a) {
return preg_split('/[\s,;\-\.]+/', $a, -1, PREG_SPLIT_NO_EMPTY);
}

function exampleUse() {
$str = "One two three.";
$words = getWords($str);
foreach ($words as $word) {
print "word=$word\n";
}
}

ولی این کد با توجه به space کار خودش رو انجام میده اگه هر حرف رو جدا می کرد عالی میشد
اگر کسی از دوستان کمک کنه این کد رو تکمیل کنه ممنون میشم

googoli
یک شنبه 08 اردیبهشت 1392, 22:32 عصر
خوب میتونی با بیشتر کردن حروف امنیت رو بالا ببری ولی هک شدن این هم خودش دردسر هست و شاید هم هک نشه(اگر به تابع دیکد دسترسی نداشته باشه ها) خب اگر میشه بیشتر روی این موضوع بحث کنیم و اینکه چطوری میشه به نحو احسن پیاده سازی کرد این موضوع رو


دوست من بهترین کار این هست که هر کاراکتر رو به چند کاراکتر تبدیل کنی
خب من هم دنبال این هستم که بدونم چطوری میشه هر کاراکتر رو به چند کارکتر تبدیل کرد

googoli
یک شنبه 08 اردیبهشت 1392, 22:41 عصر
خب دستورش رو پیدا کردم


$str = 'Hello World!';$arr = str_split($str); print_r($arr);/*Array( [0] => H [1] => e [2] => l [3] => l [4] => o [5] => [6] => W [7] => o [8] => r [9] => l [10] => d [11] => !)*/

فقط درباره امنیت و نحوه پیدا سازی اگه میشه راهنماییم کنید ممنون میشم

abolfazl-z
یک شنبه 08 اردیبهشت 1392, 22:55 عصر
خوب شما میتونین از چند کدر و دیکدر استفاده کنید بر فرض مثال میتونین اول هر رشته ای که 'کد' می کنید چند کاراکتر بخصوص اضافه کنید که اون کاراکتر باز خودش توسط یک دیکدر عمومی به یک کد عددی تبدیل میشه مثلا 1 و این نشانگر این هست که شما باید از دیکدر 1 استفاده کنید و اگر عدد 4 بود از دیکدر 4 استفاده کنید.و برای امنیت بیشتر این کدر و دیکدر ها(همان توابع php) را توسط برنامه ای که در زیر ادرس اش رو دادم :
http://www.zend.com/products/guard/
Encode کرده و حتی نگذارید توابع شما هم دیده شود با انجام این اعمال امنیت چند برابر شده و امکان هک کم می شود!(اصلا عمرا بتونن هک کنند)

googoli
دوشنبه 09 اردیبهشت 1392, 12:17 عصر
خب یه سوال دیگه برای کد کردن از ارایه ها استفاده کنم یا از یه جدول اطلاعات رو ذخیره کنم و بخونم
به نظر من ارایه بهتر هست و سرعت بهتری داره
اگر میشه نظراتتون رو در این زومینه بگید تا من هم استفاده کنم

abolfazl-z
دوشنبه 09 اردیبهشت 1392, 13:37 عصر
خب یه سوال دیگه برای کد کردن از ارایه ها استفاده کنم یا از یه جدول اطلاعات رو ذخیره کنم و بخونم
به نظر من ارایه بهتر هست و سرعت بهتری داره
اگر میشه نظراتتون رو در این زومینه بگید تا من هم استفاده کنم
خوب صد در صد آرایه بهتر می باشد و اصلا استفاده از بانک اطلاعاتی در این زمینه امنیت را پایین میاورد!

googoli
دوشنبه 09 اردیبهشت 1392, 18:46 عصر
من یه کد شبیه این کد می خوام فقط عدد رو از هم جدا کنه


function getWords($a) { return preg_split('/[\s,;\-\.]+/', $a, -1, PREG_SPLIT_NO_EMPTY);} function exampleUse() { $str = "One two three."; $words = getWords($str); foreach ($words as $word) { print "word=$word\n"; }}

میشه کمکم کنید ؟

abolfazl-z
دوشنبه 09 اردیبهشت 1392, 20:10 عصر
منظورتان را واضح تر بیان کنید.

googoli
سه شنبه 10 اردیبهشت 1392, 11:40 صبح
مشکلم حل شد ممنون