PDA

View Full Version : ساختن تصویر امنیتی



mohsen_zelzela00
چهارشنبه 24 بهمن 1386, 22:07 عصر
سلام به دوستان عزیز
من می خواستم یه تصویر امنیتی درست کنم ولی نمی دونم چکار باید بکنم
تو این سایت هم جستجو کردم ولی تاپیکینبود فقط یه نمونه کد بود
اگه کسی از دوستان بتونه با توضیح اینجا بزاره ممنون می شم

ممنون

mohsen_zelzela00
چهارشنبه 24 بهمن 1386, 22:16 عصر
کسی نیست جواب من ارو بده

cpu0001100110000101
چهارشنبه 24 بهمن 1386, 22:16 عصر
از سایت CODEPROJECT (http://www.codeproject.com) یه کامپوننت به نام CAPTCHA رو بگیر سورس و مثال هم داره ...

Behrouz_Rad
چهارشنبه 24 بهمن 1386, 23:17 عصر
کسی نیست جواب من ارو بده
دوست من!
اینجا که یاهو مسنجر نیست که انتظار داشته باشی بعد از 9 دقیقه بهت جواب بدن!
لینک ذیل رو مطالعه بفرمایید:
http://barnamenevis.org/forum/showthread.php?t=63212

موفق باشید.

my_blithe
پنج شنبه 25 بهمن 1386, 13:12 عصر
CAPTCHA مخفف Completely Automated Public Turing Test To Tell Computers And Humans Apart بوده و به معنی تصدیق این امر که داده دریافتی توسط یک انسان ایجاد شده است.

این مقاله به ارائه یک راه حل بسیار آسان و قابل فهم ، جهت ساخت تصاویر امنیتی و استفاده از این تکنیک می پردازد. برای این منظور باید تصویری بصورت داینامیک ایجاد شود که نشان دهنده متن اتفاقی باشد. کاربر با مشاهده این تصویر ، متن درون آن را وارد کرده و امکان ارسال فرم برای او فراهم می شود. در واقع تا زمانی که متن صحیح وارد نشود فرم ارسال نمی شود.

در این روش ما یک صفحه aspx معمولی داریم که در رویداد Load این صفحه تصویر را ایجاد می کنیم و متن اتفاقی را پس از نوشتن روی تصویر، در Session ذخیره می کنیم تا در صفحه های مورد نیاز با مقایسه مقدار وارد شده توسط کاربر و این Session فرم های برنامه را مدیریت کنیم.

برای این منظور ابتدا فضا نام های زیر را به صفحه خود اضافه کنید :


using System.Drawing;
using System.Text;

سپس رویداد Load صفحه را بصورت زیر کد نویسی کنید :


SecureImage.aspx.cs
protected void Page_Load(object sender, EventArgs e)
{
//ایجاد شیء گرافیک و دیگر ملزومات
Bitmap objBMP = new System.Drawing.Bitmap(60, 20);
Graphics objGraphics = System.Drawing.Graphics.FromImage(objBMP);
objGraphics.Clear(Color.Green);
objGraphics.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias;

//تنظیم فونت نوشته روی عکس
Font objFont = new Font("Arial", 11, FontStyle.Bold);

//ساخت رشته تصادفی 5 رقمی
string randomStr = "";
Random autoRand = new Random();
randomStr = Convert.ToString(autoRand.Next(12345,99999));

//اضافه کردن متن در جلسه
Session.Add("randomStr", randomStr);

//نوشتن متن
objGraphics.DrawString(randomStr, objFont, Brushes.White, 6, 3);

//تنظیم نوع عکس و برگرداندن آن به عنوان خروجی
Response.ContentType = "image/GIF";
objBMP.Save(Response.OutputStream,System.Drawing.I maging.ImageFormat.Gif);

//آزاد کردن منابع
objFont.Dispose();
objGraphics.Dispose();
objBMP.Dispose();
}



در صورتی که این صفحه را اجرا کنید آنچه مشاهده می کنید یک تصویر با پس زمینه سبز است که عددی 5 رقمی را نشان می دهد. با Refresh کردن صفحه متن درون تصویر تغییر می کند.
حال کافیست در فرم خود یک کنترل Image قرار دهیم و مقدار فایل منبع آن را برابر SecureImage.aspx انتخاب کنیم.


<asp:Image ID="Image1" runat="server" ImageUrl="SecureImage.aspx" />

همچنین یک TextBox هم به فرم اضافه می کنیم تا کاربر متن درون تصویر را در آن وارد کند.
قطعه کد زیر جهت بررسی مقدار وارد شده پیشنهاد می شود :


if ((string)Session["randomStr"] == TextBox1.Text.Trim())
{
//Submit Form
}
else
{
//Show Error - Please Enter Security Code that show in Image
}


تشکر یادت نره -------------- دوست دارم:لبخند:

my_blithe
پنج شنبه 25 مهر 1387, 17:47 عصر
بین دوست من .
شما تصویر رو توی یک صفحه دیگه ایجاد میکنی و بعد توی یک کنترل image اون صفحه رو نشون میدی.
حالا دقیقا زمانی که تصویر داره ایجاد میشه ، عدد به سشن داده میشه و شما مقدار این سشن رو با تکس باکس چک میکنی.

دقیقا مثل بالا و به همون ترتیب عمل کن.

Saber_Fatholahi
شنبه 27 مهر 1387, 14:04 عصر
دوست من این کد به صورت کامل توی این آدرس (http://aspcode.ir/Article.aspx?id=18) توضیح داده شده
دوستان اگه کد رو از جایی میارن لطفا منبع اونو جهت مطالعات بیشتر ذکر کنن

looke_Khosh_Shans
یک شنبه 28 مهر 1387, 08:40 صبح
CAPTCHA مخفف Completely Automated Public Turing Test To Tell Computers And Humans Apart بوده و به معنی تصدیق این امر که داده دریافتی توسط یک انسان ایجاد شده است.




using System.Drawing;
[code]





تشکر یادت نره -------------- دوست دارم:لبخند:


سلام
این مقاله خیلی به دردم خورد و درست هم کار میکنه.فقط یه اشکال کوچیک دارم. در یکی از مقاله ها آقای راد یک مثال گذاشته بودند:

دوست من!
اینجا که یاهو مسنجر نیست که انتظار داشته باشی بعد از 9 دقیقه بهت جواب بدن!
لینک ذیل رو مطالعه بفرمایید:
http://barnamenevis.org/forum/showthread.php?t=63212

موفق باشید.


در این مقاله راه در هم ریزی تصویر برای جلوگیری از خوانده شدن توسط Text OCR ها با استفاده از یک DLL FILE توضیح داده شده بود.
می خواستم بدانم آیا راهی برای درهم ریزی عکسها بدون استفاده از DLL ها وجود دارد یا خیر.

اگر دارد لطفا راهنمائی فرمائید.
با تشکر