# زبان های اسکریپتی > PHP >  چند سوال درباره امنیت | آیا این الگوریتم امنه؟

## amir1378

باسلام خدمت کاربران گرامی.

من php رو خیلی وقت نیست که شروع کردم و در زمینه امنیتش تجربه ای ندارم.در حال نوشتن یک اسکریپت هستم که بتونه شماره سریال یا هر گونه کد رو به کاربر بفروشه.همونطور که میدونید یکی از مهمترین قسمت هایی که باید بهش توجه بشه ذخیره کردن داده هایی که میخوام بفروشم در دیتابیسه.درباره نحوه ذخیره سازی این داده ها و امنیتشون چنتا سوال داشتم و واقعا ممنون میشم جواب بدید :لبخند گشاده!: :

1: واقعا نحوه ذخیره کردن سریال ها در پایگاه داده برای امنیت خیلی مهمه؟منظورم اینه که اگه سریال ها رو دقیقا همونطوری که هستن و بدون تغییر دادن در دیتابیس ذخیره کنم از لحاظ امنیتی مشکلی پیش میاد ؟در این کد از mysql استفاده میکنم.باز کردن دیتابیس برای هکر چقدر مشکله؟

2: من چون اطلاعی در مورد این قضیه ندارم فرض رو بر این گذاشتم که هکر بتونه محتوای دیتابیس من رو ببینه.و تنها راهی که به ذهنم رسید این بود که بیام سریال هارو تغییر بدم بعد تو دیتابیس ذخیره کنم.الگوریتم هایی که ازش برای هش کردن رمزعبور استفاده میکنیم خیلی خوبن . ولی بالاخره که باید سریال رو به کاربر بدم .و این الگوریتم ها هم که یه طرفه هستن پس استفاده از اینا رو بیخیال شدم .گفتم بیام خودم یه الگوریتم بنویسم که رشته رو رمز نگاری کنه و یه راهی هم برای بگرداندن رشته ها به حالت اولشون داشته باشه.گفتم اگه الگوریتم عمومی باشه هر کسی میتونه رشته هارو رمزگشایی کنه.به همین خاطر خودم یکی نوشتم.حالا سوالم اینه : آیا این روش صحیحه؟ راه بهتری برای ذخیره سازی و حفاظت از داده ها وجود داره؟پیشنهاد شما چیه؟

3: آخرین سوالم هم درباره امنیت الگوریتمیه که نوشتم . این الگوریتم رشته رو میگیره و بطور شانسی رشته رو رمزگذاری میکنه.
برای مثال من 5  دفعه متفاوت  عبارت PHP5 رو باهاش رمزگذاری و نتایج زیر بدست اومد


//نتیجه رمزگذاری عبارت PHP5 در 5 دفعه متفاوت
"true[62566.3-9890.08!47430.7%46388.5)49406.7$48109.8]35051.9}"

"44728.6;9447.34@71400.9[40155.1@54095.7@63147.4;68612.5]93498.8;"

"15321.3)74727.1(69018.5@his@17911.9(return!15523.  1;62706.2?"

"12085.7*76512.2$26311%40155.1!87486.6}50258.7&686  12.5_88003.1*"

"59212.7-25931.2$2933.24!97560.1)17911.9]94263.5:4673.53[50354.2_"

ساختارش طوریه که هر دفعه یک رشته تصادفی میده ولی وقتی هر کدوم از عبارات بالا رو رمزگشایی کنیم دوباره کلمه PHP5 بدست میاد.
من بار اولمه الگوریتم رمزگذاری می نویسم و نمیدونم آیا این میتونه امنیت داده های دیتابیس رو تامین کنه یا نه؟آیا هکر میتونه با دیدن یکی از رشته ها رمزگشاییش کنه؟در صورتی که این موضوع نیاز به نمونه های بیشتری داره میتونید به آدرس زیر بروید.الگوریتم رمزنگاری و رمزگشایی رو بصورت جدا روی این صفحه قرار دادم:http://tipan.ugig.irبه طور کلی میخوام داده هارو به شکل رمزنگاری شده وارد دیتابیس کنم و وقتی خرید کاربر انجام شد اونا رو رمزگشایی کنم و به کاربر نشون بدم.آیا این ساختار کار درستیه؟و آیا میتونم به این الگوریتم واسه این کار اتکا کنم؟
ممنون میشم اگه در این مورد بنده رو راهنمایی کنید.
با تشکر :لبخند گشاده!:

----------


## abolfazl-z

سلام
همچین گفتین الگوریتم اش رو اینجا قرار دادم که فکر کردم سورس اش رو قرار دادین !

اول این رو دیکد کن :

download

در ضمن اگر قرار باشد هکر بتونه به دیتابیس اتون نفوذ کند دیگه هیچ کاریش نمیشه کرد و تقریبا میتونه زمینگیرتون کند.

----------

