-
最近、音声認証コードがますます普及していることがわかりました。たとえば、MSN ページや一部の海外の Web サイトにも音声認証コードがあるのを目にしました。
時間をかけて調べた結果、音声認証コードと一般的な認証コードの主な違いは、認証コードを再生する方法にあります。この記事の音声認証コードの原理: サーバーから認証コードを生成し、
そして、それを Cookie (getcode.aspx.cs) に保存し、クリックして検証コードをリッスンするときに、javascirpt オペレーション (ここでは jquery を使用します) を呼び出して、Cookie から検証コードを読み取ります。
次に、検証コードを codevoice.aspx ページに転送し、mp3 ファイルを生成するために検証コードを合成し、最後に再生のためにこのファイルをフラッシュに転送します。
「現在の確認コードは 5678 です。それを入力してください。」という音声が聞こえます。この原理は、ほとんどの Web サイトで使用される音声認証コードと似ています。
ソースコードのダウンロード: ダウンロード (VS2008 SP1 または VS2010 を使用して開いてください)
確認コード画像ページのコードをページに配置します
プレーンコピーをクリップボードプリントに表示しますか?
クリックして検証コードを聞くときに呼び出される js 関数は次のとおりです。
プレーンコピーをクリップボードプリントに表示しますか?
関数 playvoice(id) {
var voiceid = document.getElementById(id);
var voicecode = $.cookie('ValidateCode');
voiceid.innerHTML = " 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' />";
}
関数 playvoice(id) {
var voiceid = document.getElementById(id);
var voicecode = $.cookie('ValidateCode');
voiceid.innerHTML = " 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' />";
}
このうち $.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;
}