① 驗證碼圖片不顯示
這是設置問題,具體解決辦法如下:
1、首先,單擊「安全」,然後選擇【自定義級別】,如下圖所示,然後進入下一步。
② 打不開驗證碼圖片
造成該問題的原因是 Service Pack 2 為了提高系統的穩定性,默認狀態下是屏蔽了對 XBM,也即是 x-bitmap 格式的圖片的顯示,而這些驗證碼恰恰是 XBM 格式的,所以顯示不出來了。
解決的方法其實也很簡單,只需在系統注冊表中添加鍵值 "BlockXBM"=dword:00000000 就可以了,具體操作如下:
1.打開系統注冊表;
2.依次點開HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Internet Explorer\\Security;
3.在屏幕右邊空白處點擊滑鼠右鍵,選擇新建一個名為 「BlockXBM」為的 DWORD 鍵,其值為默認的0。
4.退出注冊表編輯器。
你還可以把圖片保存下。擴展名用.png的打開後顯的圖片就是驗證碼
寫了這么多,不知能不能幫你解決問題。
③ 我的手機怎麼驗證碼圖片看不到
你好你的手機怎麼驗證碼圖片看不到,這是因為手機使用時間長的系統緩存垃圾過多,有的圖片無法顯示,你可以多刷新幾次,或者清除一下手機的緩存
④ 驗證碼是一張圖片。怎麼寫
驗證碼是一張圖片。怎麼寫?
有些驗證碼粗看是一張圖片,但是細看是由幾個字母或者數字組成。那就看清後再輸入。
有些驗證碼就是一張圖片,那就按照要求直接點擊圖片就可以。
⑤ 驗證碼錯誤
第一種情況:
輸入的驗證碼沒有錯誤,但還是提示錯誤,可能會是以下兩種情況:
一,頁面上的刷新問題
每次刷新頁面登錄的驗證碼都會跟著變換,如果提示驗證碼錯了,系統便會更換驗證碼,這時可能頁面還是先前的驗證碼,你不能輸入兩次相同的驗證碼,要待看到新的驗證碼後,再重新輸入新的驗證碼就可以了;
二,輸入法的全形/半形問題
輸入法中的全形/半形輸入數字是不一樣的,即全形數字1234和半形數字1234是不同的,新浪博客的驗證碼輸入只支持半形數字,如輸入全形數字,雖然數字是正確的但還是不能通過驗證;
另外,隨著新浪博客新用戶的逐漸增多,系統必須要經常的升級維護,出現一些意想不到的問題屬於正常現象,部分用戶會受到影響;
第二種情況:
1,把你瀏覽器的安全級別設置為中;
2,清理瀏覽器緩存;
3,同時把計算機時區設置為北京時區,在internet時間中,將自動與internet時間伺服器同步前面的勾去掉,然後將時間日期設置正確;
4,關閉瀏覽器,重新打開BLOG首頁登陸,同時不要打開其他BLOG頁面;
5,點擊登陸按鈕的時候,請務必不要連續點擊;
最後,請一定要注意一件事:驗證碼是有時效性的,間隔一段時間,即使你沒刷新頁面,頁面也會自動刷新的,因此間隔一段時間不登陸,驗證碼也是會變的;
如果想把自己BLOG頁面裝飾的漂亮點,我這里有裝飾代碼,和詳細的使用方法,以及數千張背景圖片素材供你選擇。
⑥ 輸入驗證碼 總是顯示一個×的圖片 該怎麼解決
近來,有大量的Q友詢問這個問題。驗證碼給不少Q友帶來的麻煩。推出驗證碼的策略主要是為了保障您的權益,為了防止盜號者使用惡意軟體以登錄的方式掃描您的密碼。但是許多人都不理解這個。由於感到這類問題的嚴重性,親身加了一些需要輸入驗證碼的Q友,從中得到了一些問題所在。大家一直在討論為什麼要有這個驗證碼呢?在調查中發現不少Q友都一般有兩個Q或者兩個Q以上,但是並不是他們的這些QQ都需要輸入,而只是一個而已。導致這樣的結果是很明顯的,現在我將這些規類以下幾個原因:1、可能你使用過一些非官方的軟體登陸QQ,或者在網站上掛過QQ。2、在一些不安全的場所登陸過Q,如存在不安全因素的網吧。3、你的電腦中存在的病毒木馬的緣故,比如你中了病毒發送一些病毒消息,或者騙人的消息,這些都是由於病毒造成的緣故。4、惡意發送QQ消息,被人舉報,強制刪除大量好友的。5、同時也請不要在您登錄號碼的時間段提供密碼讓好友在其它地方登錄試用您的QQ。6、也有可能是網路問題造成的緣故,比如用代理上,網路不穩定,都是會出現的。解決的辦法:請您用殺毒軟體在安全模式下全面查殺您的電腦,建議您將這個號碼的本地聊天記錄清除即可(在QQ安裝目錄下搜索以該號碼命名文件夾進行刪除即可!)在這些之間,請您卸載之前的一切QQ版本,下載最新的QQ官方版本使用。還有就是被舉報的QQ號碼,請耐心等待觀察時間的通過,等時間一過,驗證碼也就會消失,但需要重新像上面所操作的一下。關於用戶號碼存在雙主號被要求輸驗證碼解決方法因近期發現有大量號碼存在雙主號(即有兩人同時知道號碼密碼在不同時間不同地點使用),不易被原號碼主人發現,故我們推出了驗證碼來引起真正號碼主人關注,減少原主人的損失。希望大家一起來加強號碼的防範意識,共同營造一個綠色健康的上網環境。現列舉出具體的原因及解決方法:具體原因:1、 發送廣告消息: 即並在您不知情的情況下可能被其他人用來發送廣告或者詐騙消息,從而被系統檢測到。2、異地登錄 :即您的號碼經常在一個地方登陸,突然檢測到登陸地點有變動時,為安全起見會加上驗證碼3、號碼有掛機行為:通常盜號者會利用幫用戶掛機達到盜取用戶財產及號碼。解決方法:1、 發現有驗證碼後立即修改密碼,並查殺木馬2、 在您被需要驗證碼後將進入觀察期,正常使用10~20天左右,系統將自動取消;如果在此期間密碼再次泄漏,會被繼續要求輸入驗證碼
⑦ C# 生成驗證碼圖片
usingSystem;
usingSystem.Drawing;
usingSystem.Drawing.Drawing2D;
usingSystem.Drawing.Imaging;
usingSystem.IO;
usingSystem.Text;
usingSystem.Web;
namespaceDemo
{
///<summary>
///Captcha
///</summary>
publicclassCaptcha
{
#regionPrivateField
///<summary>
///隨機種子
///</summary>
privateRandomobjRandom=newRandom();
#endregion
#regionPublicProperty
#region驗證碼長度
///<summary>
///驗證碼長度
///</summary>
privateintlength=4;
///<summary>
///驗證碼長度(默認為4)
///</summary>
publicintLength
{
get{returnthis.length;}
set{this.length=value;}
}
#endregion
#region驗證碼字元串
///<summary>
///驗證碼字元串
///</summary>
privatestringverifyCodeText=null;
///<summary>
///驗證碼字元串
///</summary>
publicstringVerifyCodeText
{
get{returnthis.verifyCodeText;}
set{this.verifyCodeText=value;}
}
#endregion
#region是否加入小寫字母
///<summary>
///是否加入小寫字母
///</summary>
privatebooladdLowerLetter=false;
///<summary>
///是否加入小寫字母(不包括o)
///</summary>
publicboolAddLowerLetter
{
get{returnthis.addLowerLetter;}
set{this.addLowerLetter=value;}
}
#endregion
#region是否加入大寫字母
///<summary>
///是否加入大寫字母
///</summary>
privatebooladdUpperLetter=false;
///<summary>
///是否加入大寫字母(不包括O)
///</summary>
publicboolAddUpperLetter
{
get{returnthis.addUpperLetter;}
set{this.addUpperLetter=value;}
}
#endregion
#region字體大小
///<summary>
///字體大小
///</summary>
privateintfontSize=18;
///<summary>
///字體大小(默認為18)
///</summary>
publicintFontSize
{
get{returnthis.fontSize;}
set{this.fontSize=value;}
}
#endregion
#region字體顏色
///<summary>
///字體顏色
///</summary>
privateColorfontColor=Color.Blue;
///<summary>
///字體顏色(默認為Blue)
///</summary>
publicColorFontColor
{
get{returnthis.fontColor;}
set{this.fontColor=value;}
}
#endregion
#region字體類型
///<summary>
///字體類型
///</summary>
privatestringfontFamily="Verdana";
///<summary>
///字體類型(默認為Verdana)
///</summary>
publicstringFontFamily
{
get{returnthis.fontFamily;}
set{this.fontFamily=value;}
}
#endregion
#region背景色
///<summary>
///背景色
///</summary>
privateColorbackgroundColor=Color.AliceBlue;
///<summary>
///背景色(默認為AliceBlue)
///</summary>
publicColorBackgroundColor
{
get{returnthis.backgroundColor;}
set{this.backgroundColor=value;}
}
#endregion
#region前景噪點數量
///<summary>
///前景噪點數量
///</summary>
privateintforeNoisePointCount=2;
///<summary>
///前景噪點數量(默認為2)
///</summary>
publicintForeNoisePointCount
{
get{returnthis.foreNoisePointCount;}
set{this.foreNoisePointCount=value;}
}
#endregion
#region隨機碼的旋轉角度
///<summary>
///隨機碼的旋轉角度
///</summary>
privateintrandomAngle=45;
///<summary>
///隨機碼的旋轉角度(默認為40度)
///</summary>
publicintRandomAngle
{
get{returnthis.randomAngle;}
set{this.randomAngle=value;}
}
#endregion
#endregion
#regionConstructorMethod
///<summary>
///構造方法
///</summary>
publicCaptcha()
{
this.GetText();
}
#endregion
#regionPrivateMethod
///<summary>
///得到驗證碼字元串
///</summary>
privatevoidGetText()
{
//沒有外部輸入驗證碼時隨機生成
if(String.IsNullOrEmpty(this.verifyCodeText))
{
StringBuilderobjStringBuilder=newStringBuilder();
//加入數字1-9
for(inti=1;i<=9;i++)
{
objStringBuilder.Append(i.ToString());
}
//加入大寫字母A-Z,不包括O
if(this.addUpperLetter)
{
chartemp='';
for(inti=0;i<26;i++)
{
temp=Convert.ToChar(i+65);
//如果生成的字母不是'O'
if(!temp.Equals('O'))
{
objStringBuilder.Append(temp);
}
}
}
//加入小寫字母a-z,不包括o
if(this.addLowerLetter)
{
chartemp='';
for(inti=0;i<26;i++)
{
temp=Convert.ToChar(i+97);
//如果生成的字母不是'o'
if(!temp.Equals('o'))
{
objStringBuilder.Append(temp);
}
}
}
//生成驗證碼字元串
{
intindex=0;
for(inti=0;i<length;i++)
{
index=objRandom.Next(0,objStringBuilder.Length);
this.verifyCodeText+=objStringBuilder[index];
objStringBuilder.Remove(index,1);
}
}
}
}
///<summary>
///得到驗證碼圖片
///</summary>
privateBitmapGetImage()
{
Bitmapresult=null;
//創建繪圖
result=newBitmap(this.verifyCodeText.Length*16,25);
using(GraphicsobjGraphics=Graphics.FromImage(result))
{
objGraphics.SmoothingMode=SmoothingMode.HighQuality;
//清除整個繪圖面並以指定背景色填充
objGraphics.Clear(this.backgroundColor);
//創建畫筆
using(SolidBrushobjSolidBrush=newSolidBrush(this.fontColor))
{
this.AddForeNoisePoint(result);
this.AddBackgroundNoisePoint(result,objGraphics);
//文字居中
StringFormatobjStringFormat=newStringFormat(StringFormatFlags.NoClip);
objStringFormat.Alignment=StringAlignment.Center;
objStringFormat.LineAlignment=StringAlignment.Center;
//字體樣式
FontobjFont=newFont(this.fontFamily,objRandom.Next(this.fontSize-3,this.fontSize),FontStyle.Regular);
//驗證碼旋轉,防止機器識別
char[]chars=this.verifyCodeText.ToCharArray();
for(inti=0;i<chars.Length;i++)
{
//轉動的度數
floatangle=objRandom.Next(-this.randomAngle,this.randomAngle);
objGraphics.TranslateTransform(12,12);
objGraphics.RotateTransform(angle);
objGraphics.DrawString(chars[i].ToString(),objFont,objSolidBrush,-2,2,objStringFormat);
objGraphics.RotateTransform(-angle);
objGraphics.TranslateTransform(2,-12);
}
}
}
returnresult;
}
///<summary>
///添加前景噪點
///</summary>
///<paramname="objBitmap"></param>
privatevoidAddForeNoisePoint(BitmapobjBitmap)
{
for(inti=0;i<objBitmap.Width*this.foreNoisePointCount;i++)
{
objBitmap.SetPixel(objRandom.Next(objBitmap.Width),objRandom.Next(objBitmap.Height),this.fontColor);
}
}
///<summary>
///添加背景噪點
///</summary>
///<paramname="objBitmap"></param>
///<paramname="objGraphics"></param>
(BitmapobjBitmap,GraphicsobjGraphics)
{
using(PenobjPen=newPen(Color.Azure,0))
{
for(inti=0;i<objBitmap.Width*2;i++)
{
objGraphics.DrawRectangle(objPen,objRandom.Next(objBitmap.Width),objRandom.Next(objBitmap.Height),1,1);
}
}
}
#endregion
#regionPublicMethod
publicvoidOutput(HttpResponseobjHttpResponse)
{
using(BitmapobjBitmap=this.GetImage())
{
if(objBitmap!=null)
{
using(MemoryStreamobjMS=newMemoryStream())
{
objBitmap.Save(objMS,ImageFormat.Jpeg);
HttpContext.Current.Response.ClearContent();
HttpContext.Current.Response.ContentType="image/Jpeg";
HttpContext.Current.Response.BinaryWrite(objMS.ToArray());
HttpContext.Current.Response.Flush();
HttpContext.Current.Response.End();
}
}
}
}
#endregion
}
}
⑧ 無法顯示驗證碼圖片
一、.xbm圖片
(不過因為Windows XP SP2操作系統在默認狀態下是不支持該圖片格式的,所以現在採用這種圖片做驗證碼的網站很少了)
解決辦法為:運行Regedit命令打開注冊表編輯器,依次定位到HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Internet Explorer/Security,在窗口右邊新建一個名為"BlockXBM"的REG_DWORD值,將其值設置為"0"(十六進制值)。之後重新啟動機器,則驗證碼的圖片就可以看到了。
二、PNG圖片:
開始->運行,在運行輸入框中輸入「regsvr32 c:\windows\system32\pngfilt.dll」(不包含雙引號),然後點擊確定,如果在注冊時出現「已載入c:\windows\system32\pngfilt.dll,但沒有找到DllRegisterSever 輸入點,無法注冊這個文件」,則表明這個文件可能損壞了,你要去別的機子去Copy一個好的過來(也可以來這個網站下載:http://www.farfree.com/tool/dll.asp),再進行一次注冊,即:開始->運行,在運行輸入框中輸入「regsvr32 c:\windows\system32\pngfilt.dll」(不包含雙引號),如果出現「c:\windows\system32\pngfilt.dll 中的DllRegisterServer 成功」,說明問題已經解決了。
如果在覆蓋「pngfilt.dll」文件時,提示「無法復制PNGFILT:文件正被另一個人或程序使用。關閉任何可能使用這個文件的程序,重新試一次。」,就把「c:\windows\system32\pngfilt.dll」這個文件用文件粉碎機粉碎掉,然後把新的「pngfilt.dll」文件粘貼過來就OK了!
三、Flash圖片:
如果網頁中的Flash圖片或者Flash驗證碼顯示為紅X,那就是是你的Flash Player版本太低了,你可以去下載Adobe Flash Player 9.0版本的,這是網路上最常用的Flash Player。
官方下載地址:http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash
1. 打開後,把「Google Toolbar」前面的「√」取消 (這個是google的工具條)
2. 在「I agree to the...」前面打上「√」 (這個是協議,不選中就是不同意,不同意就不能安裝)
3. 點擊"Install Now" 按鈕
4. 然後就耐心的等待(一會IE彈出對話框就點擊「安裝」或「Install」)
5. 安裝完後會出現一個小動畫,表示安裝完成
6. 安裝完後關閉IE瀏覽器再打開,Flash Player就安裝完成了!
⑨ 驗證碼圖片無法顯示
修改ie的Internet選項設置,打開ie瀏覽器,點擊「工具」進入Internet選項。
清除ie緩存,重啟ie瀏覽器驗證結果。
⑩ 驗證碼圖片製作
隨機圖片驗證碼的製作
以前寫的一個生成彩色驗證碼的例子。重載了makeCode()函數,即可以生成本地圖片,又可生成基於輸出流的圖片。
package smart.gui.util;
。。。
public class ColoredCodeMaker {
private final static String letterCollection =
"";
private String randomStr = "";
private RenderedImage renderedImg = null;
public ColoredCodeMaker(int width, int height, int letterCount) {
init(letterCount);
makeRenderedImage(width, height);
}
public String makeCode(OutputStream os) {
String formatName = "JPEG";
try {
ImageIO.write(this.renderedImg, formatName, os);
}
catch (Exception ex) {
return "";
}
return randomStr;
}
public String makeCode(File outputFileName) {
String formatName = "JPEG";
try {
ImageIO.write(this.renderedImg, formatName, outputFileName);
}
catch (Exception ex) {
return "";
}
return randomStr;
}
private void makeRenderedImage(int width, int height) {
if (width <= 0) {
width = 60;
}
if (height <= 20) {
height = 20;
}
/**
* TYPE_INT_RGB Represents an image with 8-bit RGB color components packed into integer pixels.
* The image has a DirectColorModel without alpha.
*/
BufferedImage bufImage = new BufferedImage(width, height,
BufferedImage.TYPE_INT_RGB);
/**
* 獲取圖形上下文
*/
Graphics g = bufImage.createGraphics();
/**
* 設置背景色
*/
g.setColor(new Color(0xDCDCDC));
g.fillRect(0, 0, width, height);
/**
* 畫邊框
*/
g.setColor(Color.black);
g.drawRect(0,0,width-1,height-1);
/**
* 將認證碼顯示到圖像中
*/
g.setColor(Color.black);
g.setFont(new Font("Atlantic Inline",Font.PLAIN,18));
for (int i = 0; i < randomStr.length(); i++) {
g.drawString(randomStr.charAt(i)+"", width/(randomStr.length()+2)*(i+1), height/2 + 10);
}
Random random = new Random();
for (int i = 0; i < width/2; i++) {
int x = random.nextInt(width);
int y = random.nextInt(height);
g.drawOval(x,y,1,1);
}
g.dispose();
this.renderedImg = bufImage;
}
private void init(int letterCount) {
if (randomStr.length() != letterCount) {
randomStr = "";
for (int i = 0; i < letterCount; i++) {
randomStr +=
letterCollection.charAt( (int) (letterCollection.length() *
Math.random()));
}
}
}
}
////////測試代碼,圖片寬150,高40,圖片上共8個隨機字元,保存在C盤下
ColoredCodeMaker ccm = new ColoredCodeMaker(150,40,8);
ccm.makeCode(new java.io.File("C:\\aaa.jpeg"));
----------------------------------------------------------------------------------------------------------------------------------------------用VB製作驗證碼生成器
演算法設計
1.窗體設計
啟動VB6並新建一個標准EXE工程,布置好控制項並設置好名稱。
接著將兩個圖片框的AutoRedraw屬性設置成True,txt_inp、cmd_browse的Enabled屬性設置為False,txt_inp的Maxlength屬性設置成10。然後單擊「工程→部件」,勾選「Microsoft CommonDialog Control 6.0」。
2.演算法
加密過程是程序的重點。在這里我們運用畫線和畫點函數來處理圖片,在圖片框上隨機選兩個點畫直線,同時用隨機函數確定它的顏色;再隨機點一個點,同樣用隨機函數確定它的顏色。在這里我們還用隨機取字體樣式和背景色,不過要注意的是,背景和字體顏色的差別要搞大一些,由於每個RBG分量值越大顏色越深,因此我們用下面兩條語句就可以增強顏色的對比度:
pic_las.ForeColor = RGB(Rnd * 255, Rnd * 255, Rnd * 255)
pic_las.BackColor = RGB(Rnd * 55, Rnd * 55, Rnd * 55)
繪制圖像的具體的代碼如下:
Sub AddPas()
On Error GoTo Err1
pic_las.Print Space(10 - Len(Result)); Result
Dim x, y, x1, x2, i As Integer
'隨機決定輸出字體樣式
pic_las.FontItalic = Int(Rnd * 2)
pic_las.FontUnderline = Int(Rnd * 2)
pic_las.ForeColor = RGB(Rnd * 155 + 100, Rnd * 155 + 100, Rnd * 155 + 100)
'為驗證碼添加隨機直線
For i = 1 To (Int(Rnd(1) * 8) + 1)
x = Int(Rnd * pic_las.Width): y = Int(Rnd * pic_las.Height)
x1 = Int(Rnd * pic_las.Width): Y1 = Int(Rnd * pic_las.Height)
pic_las.Line (x, y)-(x1, Y1), RGB(Rnd * 255, Rnd * 255, Rnd * 255)
Next i
'為驗證碼隨機添加圓點
For i = 1 To (Int(Rnd(1) * 200) + 100)
pic_las.PSet (pic_las.Width * Rnd, pic_las.Height * Rnd), _
RGB(Rnd * 255, Rnd * 255, Rnd * 255)
Next i
'寫入輸出文件
If chk_file.Value = 1 Then
SavePicture pic_las.Image, txt_outfile.Text
MsgBox "驗證碼已經保存在:" & txt_outfile.Text, VBInformation
End If
Exit Sub
Err1: '產生了錯誤
MsgBox Err.Number & ":" & Err.Description, VBExclamation
End Sub
內容處理好了,接下來就只要簡單響應用戶的操作即可。在這里我們還需要解決隨機生成驗證碼的問題,我們可以把需要生成的驗證碼每一位都放入一個字元串,再用隨機函數以及字元串截取函數Mid(String,Start As Long,[Length])讀入每一位驗證碼。另外為了增強程序的功能,我還允許用戶保存和拷貝驗證碼以及允許用戶自行定義驗證碼。由於版面有限,這里就不給出完整的源程序了,你可以從http://www.cfan.com.cn/11program/200513/VBpass.zip下載到完整的源代碼。
總結
運行一下程序,「加密」效果還不錯吧。
這可不是一般的破解機器能識別得了的哦!當然你也可以將這個加密演算法運用到你個人的程序和論壇上去,它為程序的安全性提供了很好的保證呢!