-
ล่าสุดฉันพบว่ารหัสยืนยันด้วยเสียงกำลังได้รับความนิยมมากขึ้นเรื่อยๆ เช่น ฉันได้เห็นรหัสยืนยันดังกล่าวในกล่องจดหมาย Gmail ที่ลงทะเบียนไว้ นอกจากนี้ยังมีรหัสยืนยันด้วยเสียงบนหน้า MSN และเว็บไซต์ต่างประเทศบางแห่ง
หลังจากใช้เวลาค้นคว้าข้อมูล ความแตกต่างหลักระหว่างรหัสยืนยันด้วยเสียงและรหัสยืนยันทั่วไปอยู่ที่วิธีเล่นรหัสยืนยัน หลักการของรหัสยืนยันด้วยเสียงในบทความนี้: สร้างรหัสยืนยันจากเซิร์ฟเวอร์
และบันทึกลงในคุกกี้ (getcode.aspx.cs) เมื่อคุณคลิกเพื่อฟังรหัสยืนยัน ให้เรียกใช้การดำเนินการ javascirct (ใช้ jquery ที่นี่) เพื่ออ่านรหัสยืนยันจากคุกกี้
จากนั้นโอนรหัสยืนยันไปที่หน้า codevoice.aspx จากนั้นสังเคราะห์รหัสยืนยันเพื่อสร้างไฟล์ MP3 และสุดท้ายจึงโอนไฟล์นี้ไปแฟลชเพื่อเล่น
เสียงที่คุณจะได้ยินคือ: "รหัสยืนยันปัจจุบันคือ 5678 โปรดป้อน" หลักการนี้คล้ายกับรหัสยืนยันด้วยเสียงที่ใช้โดยเว็บไซต์ส่วนใหญ่
ดาวน์โหลดซอร์สโค้ด: ดาวน์โหลด (โปรดใช้ VS2008 SP1 หรือ VS2010 เพื่อเปิด)
วางรหัสหน้ารหัสยืนยันบนหน้า
ดู plaincopy ไปที่ clipboardprint หรือไม่
<form id="form1" runat="server">
<div>
<ประเภทอินพุต = "ข้อความ" ชื่อ = "txtCode" id = "txtCode" maxlength = "8" />
<img onclick="this.src='getcode.aspx';" src="getcode.aspx" mce_src="getcode.aspx" align="absmiddle" style="cursor: pointer" mce_style="cursor: pointer" alt ="มองเห็นไม่ชัด กรุณาเปลี่ยนอันอื่น" title="มองเห็นไม่ชัด กรุณาเปลี่ยนอันอื่น" />
<img id="imgRead" src="image/maintb.gif" mce_src="image/maintb.gif" align="absmiddle" style="cursor: pointer" mce_style="cursor: pointer" alt="ฟังการยืนยัน code " title="ฟังรหัสยืนยัน" onclick="playvoice('player');" />
<span id="ผู้เล่น"></span>
</div>
</แบบฟอร์ม>
<form id="form1" runat="server">
<div>
<ประเภทอินพุต = "ข้อความ" ชื่อ = "txtCode" id = "txtCode" maxlength = "8" />
<img onclick="this.src='getcode.aspx';" src="getcode.aspx" mce_src="getcode.aspx" align="absmiddle" style="cursor: pointer" mce_style="cursor: pointer" alt ="มองเห็นไม่ชัด กรุณาเปลี่ยนอันอื่น" title="มองเห็นไม่ชัด กรุณาเปลี่ยนอันอื่น" />
<img id="imgRead" src="image/maintb.gif" mce_src="image/maintb.gif" align="absmiddle" style="cursor: pointer" mce_style="cursor: pointer" alt="ฟังการยืนยัน code " title="ฟังรหัสยืนยัน" onclick="playvoice('player');" />
<span id="ผู้เล่น"></span>
</div>
</แบบฟอร์ม>
ฟังก์ชัน js ที่ถูกเรียกเมื่อคลิกเพื่อฟังรหัสยืนยันมีดังนี้:
ดู plaincopy ไปที่ clipboardprint หรือไม่
ฟังก์ชั่น playvoice (id) {
var voiceid = document.getElementById(id);
var voicecode = $.cookie('ValidateCode');
voiceid.innerHTML = "<embed id='sound_play' name='sound_play' src="sound_play.swf?" + (วันที่ใหม่().getTime()) + "" mce_src="sound_play.swf?" + (ใหม่ วันที่().getTime()) + ""
FlashVars='isPlay=1&url=codevoice.aspx&code=" + รหัสเสียง + "' width='0' height='0' AllowScriptAccess='always'
ype='application/x-shockwave-flash' Pluginspage='http://www.macromedia.com/go/getflashplayer' /></embed>";
-
ฟังก์ชั่น playvoice (id) {
var voiceid = document.getElementById(id);
var voicecode = $.cookie('ValidateCode');
voiceid.innerHTML = "<embed id='sound_play' name='sound_play' src="sound_play.swf?" + (วันที่ใหม่().getTime()) + "" mce_src="sound_play.swf?" + (ใหม่ วันที่().getTime()) + ""
FlashVars='isPlay=1&url=codevoice.aspx&code=" + รหัสเสียง + "' width='0' height='0' AllowScriptAccess='always'
type='application/x-shockwave-flash' Pluginspage='http://www.macromedia.com/go/getflashplayer' /></embed>";
-
หนึ่งในนั้นคือ $.cookie('ValidateCode') คือการอ่านโค้ดยืนยันคุกกี้
รหัสในการสร้างหน้า mp3 มีดังนี้:
//อ่านรหัสยืนยันเพื่อสร้าง mp3 รวมถึง header beginning.mp3 และ tail end.mp3
ดู plaincopy ไปที่ clipboardprint หรือไม่
Response.ContentType = "เสียง/mpeg";
Response.WriteFile("เสียง/begin.mp3");
string checkCode = HttpContext.Current.Request.QueryString["code"].ToString();// string checkCode = "8888";
ถ้า (checkCode.Length > 0)
สำหรับ (int i = 0; i < checkCode.Length; i++)
-
Response.WriteFile("เสียง/"+checkCode[i] + ".mp3");
-
Response.WriteFile("เสียง/end.mp3");
Response.ContentType = "เสียง/mpeg";
Response.WriteFile("เสียง/begin.mp3");
string checkCode = HttpContext.Current.Request.QueryString["code"].ToString();// string checkCode = "8888";
ถ้า (checkCode.Length > 0)
สำหรับ (int i = 0; i < checkCode.Length; i++)
-
Response.WriteFile("เสียง/"+checkCode[i] + ".mp3");
-
Response.WriteFile("เสียง/end.mp3");
[ผู้เขียนบทความนี้ตีพิมพ์พร้อมกันบน cnblogs, csdn และ http://www.ajaxcn.net โปรดเก็บบันทึกนี้ไว้เมื่อพิมพ์ซ้ำ]
รหัสการเล่นแฟลชจะดำเนินการคลิกขวาบนคีย์เฟรมแรกเป็นหลัก ใส่รหัสต่อไปนี้ตามที่อยู่ MP3 ของหมายเลขการเล่นที่เข้ามา
ดู plaincopy ไปที่ clipboardprint หรือไม่
var mysound = เสียงใหม่ ();
var mysong = url;
var isPlay = 1;
var intnum:Number = setInterval(playSong, 500);
ฟังก์ชั่น playSong () {
ถ้า (isPlay == 1) {
mysound.loadSound(mysong+"?code="+code, true);
mysound.start();
clearInterval(intnum);
คือเล่น = 0;
-