هناك العديد من نماذج شفرة التحقق من الصور على الإنترنت. تحتوي رموز التحقق هذه التي لا تنشئ صورًا على قدرات دفاعية مضادة للتشكيل والتي هي ببساطة ضعيفة ؛ يعرض بعض الأشخاص بشكل مباشر أرقامًا محددة في رمز مصدر الويب ، ثم اطلب من الزائر إدخال مبلغ إضافي ؛ مثل 3+5 = ، هناك بعض الميزات الجديدة لرموز التحقق هذه ، ولكن لسوء الحظ ، ليس لديهم حماية على الإطلاق.
يحسن Flymorn الجدة أعلاه ، واستخدم برنامج ASP مباشرة لإنشاء تنسيق صورة BMP ، وتخزين مجموع الأرقام في الجلسة لزيادة العتبة للتكسير ؛ لا يمكن للأشخاص الذين لا يعرفون بعض المعرفة بالرسومات والأيقونات كسرها. الرمز كما يلي:
<٪
استجابة. buffer = صحيح
استجابة. expiresabsolute = الآن ()-1
استجابة. expires = 0
استجابة.
استجابة. contenttype = "Image/BMP"
callcom_creatvalidcode ()
subcom_creatvalidcode ()
عشوائي
ديمي ، الثاني ، الثالث
constcamount = 10 'عدد القيم
constccode = "0123456789" النطاق العددي
dimvcolordata (2)
vcolordata (0) = "" "يجب تحويل النقطة السوداء إلى نقطة لون ، غير محددة في الوقت الحالي
Vcolordata (1) = CHRB (255) و CHRB (255) و CHRB (255) 'نقطة بيضاء
DimvCode (4) ، يقوم VCodes بإنشاء مجموعة من الأرقام التعسفية
fori = 0to3
vCode (i) = int (rnd*camount) 'صفيف يساوي العدد الإجمالي*رقم عشوائي
IFI = 1thenvcode (i) = "11" 'الرقم الثاني هو +
ifi = 3thenvcode (i) = "10" 'الرقم الرابع هو =
vCodes = VCodes & Mid (ccode ، vcode (i) +1،1) 'سلسلة تساوي السلسلة بالإضافة إلى القيمة اللاحقة
التالي
جلسة ("CheckCode") = int (Mid (VCodes ، 1،1))+int (mid (vCodes ، 2،1)) 'حساب المبلغ وتعيين القيمة إلى الجلسة
dimvnumberdata (36)
vnumberdata (0) =
"1110000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"
vnumberdata (1) =
"1111011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"
vnumberdata (2) =
"11100001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000011"
vnumberdata (3) =
"11100001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"
vnumberdata (4) =
"11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110011"
vnumberdata (5) =
"110000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"