-
最近、音声認証コードがますます普及していることがわかりました。たとえば、MSN ページや一部の海外の Web サイトにも音声認証コードがあるのを目にしました。
時間をかけて調べた結果、音声認証コードと一般的な認証コードの主な違いは、認証コードを再生する方法にあります。この記事の音声認証コードの原理: サーバーから認証コードを生成し、
そして、それを Cookie (getcode.aspx.cs) に保存し、クリックして検証コードをリッスンするときに、javascirpt オペレーション (ここでは jquery を使用します) を呼び出して、Cookie から検証コードを読み取ります。
次に、検証コードを codevoice.aspx ページに転送し、mp3 ファイルを生成するために検証コードを合成し、最後に再生のためにこのファイルをフラッシュに転送します。
「現在の確認コードは 5678 です。それを入力してください。」という音声が聞こえます。この原理は、ほとんどの Web サイトで使用される音声認証コードと似ています。
ソースコードのダウンロード: ダウンロード (VS2008 SP1 または VS2010 を使用して開いてください)
確認コード画像ページのコードをページに配置します
プレーンコピーをクリップボードプリントに表示しますか?
<form id="form1" runat="server">
<div>
<input type="text" name="txtCode" id="txtCode" maxlength="8" />
<img onclick="this.src='getcode.aspx';" src="getcode.aspx" mce_src="getcode.aspx" align="absmiddle" style="カーソル: ポインタ" mce_style="カーソル: ポインタ" alt ="よく見えないので、別のものに変更してください" title="よく見えないので、別のものに変更してください" />
<img id="imgRead" src="image/maintb.gif" mce_src="image/maintb.gif" align="absmiddle" style="カーソル: ポインタ" mce_style="カーソル: ポインタ" alt="検証を聞くcode " title="確認コードを聞く" onclick="playvoice('player');" />
<span id="player"></span>
</div>
</form>
<form id="form1" runat="server">
<div>
<input type="text" name="txtCode" id="txtCode" maxlength="8" />
<img onclick="this.src='getcode.aspx';" src="getcode.aspx" mce_src="getcode.aspx" align="absmiddle" style="カーソル: ポインタ" mce_style="カーソル: ポインタ" alt ="よく見えないので、別のものに変更してください" title="よく見えないので、別のものに変更してください" />
<img id="imgRead" src="image/maintb.gif" mce_src="image/maintb.gif" align="absmiddle" style="カーソル: ポインタ" mce_style="カーソル: ポインタ" alt="検証を聞くcode " title="確認コードを聞く" onclick="playvoice('player');" />
<span id="player"></span>
</div>
</form>
クリックして検証コードを聞くときに呼び出される js 関数は次のとおりです。
プレーンコピーをクリップボードプリントに表示しますか?
関数 playvoice(id) {
var voiceid = document.getElementById(id);
var voicecode = $.cookie('ValidateCode');
voiceid.innerHTML = "<embed id='sound_play' name='sound_play' src="sound_play.swf?" + (new Date().getTime()) + "" mce_src="sound_play.swf?" + (new Date().getTime()) + ""
FlashVars='isPlay=1&url=codevoice.aspx&code= + voicecode + "' width='0' height='0' allowedScriptAccess='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?" + (new Date().getTime()) + "" mce_src="sound_play.swf?" + (new Date().getTime()) + ""
FlashVars='isPlay=1&url=codevoice.aspx&code= + voicecode + "' width='0' height='0' allowedScriptAccess='always'
type='application/x-shockwave-flash' pluginspage='http://www.macromedia.com/go/getflashplayer' /></embed>";
}
このうち $.cookie('ValidateCode') は cookie 検証コードを読み取るためのもので、ここでは jquery cookie プラグインを使用します。
mp3 ページを生成するコードは次のとおりです。
//検証コードを読み取り、ヘッダー begin.mp3 と末尾 end.mp3 を含む mp3 を生成します。
プレーンコピーをクリップボードプリントに表示しますか?
Response.ContentType = "オーディオ/mpeg";
Response.WriteFile("sound/begin.mp3");
string checkCode = HttpContext.Current.Request.QueryString["code"].ToString();// string checkCode = "8888";
if (checkCode.Length > 0)
for (int i = 0; i < checkCode.Length; i++)
{
Response.WriteFile("sound/"+checkCode[i] + ".mp3");
}
Response.WriteFile("sound/end.mp3");
Response.ContentType = "オーディオ/mpeg";
Response.WriteFile("sound/begin.mp3");
string checkCode = HttpContext.Current.Request.QueryString["code"].ToString();// string checkCode = "8888";
if (checkCode.Length > 0)
for (int i = 0; i < checkCode.Length; i++)
{
Response.WriteFile("sound/"+checkCode[i] + ".mp3");
}
Response.WriteFile("sound/end.mp3");
[この記事の著者は、cnblogs、csdn、および http://www.ajaxcn.netで同時に公開しました。転載する場合は、このメモを保管してください。
フラッシュ再生コードは、主に最初のキー フレームで右クリック アクションを実行します。受信した再生番号の mp3 アドレスに従って次のコードを挿入します。
プレーンコピーをクリップボードプリントに表示しますか?
var mysound = 新しいサウンド();
var mysong = URL;
var isPlay = 1;
var intnum:Number = setInterval(playSong, 500);
関数 playSong() {
if (isPlay == 1) {
mysound.loadSound(mysong+"?code="+code, true);
mysound.start();
クリアインターバル(intnum);
isPlay = 0;
}