.Net Core 實(shí)現(xiàn)驗(yàn)證碼功能

背景:


閱讀新聞

.Net Core 實(shí)現(xiàn)驗(yàn)證碼功能

[日期:2017-02-23]

來(lái)源:Linux社區(qū)

作者:niao

[字體:大 中 小]

本文介紹.Net Core下用第三方ZKWeb.System.Drawing實(shí)現(xiàn)驗(yàn)證碼功能。

通過(guò)測(cè)試的系統(tǒng):

Windows8.1 64bit

Ubuntu Server16.04 LTS 64bit

Fedora24 64bit

CentOS7.2 64bit

可以實(shí)現(xiàn)以下功能:

Open jpg, bmp, ico, png

Save jpg, bmp, ico, png

Resize image

Draw graphics with brush and pen

Open font and drawstring

以上是官方給的資料。

No.1 項(xiàng)目引入ZKWeb.System.Drawing

NuGet引入包,不會(huì)的自己Google。

No.2 簡(jiǎn)單的驗(yàn)證碼生成

int codeW=80;

int codeH=30;

int fontSize=16; Random rnd=new Random();

//顏色列表,用于驗(yàn)證碼锋恬、噪線、噪點(diǎn)

Color[] color= { Color.Black, Color.Red, Color.Blue, Color.Green, Color.Orange, Color.Brown, Color.Brown, Color.DarkBlue };

//字體列表,用于驗(yàn)證碼

string[] font={ "Times New Roman" };

//驗(yàn)證碼的字符集,去掉了一些容易混淆的字符

//寫(xiě)入Session狸捅、驗(yàn)證碼加密

//WebHelper.WriteSession("session_verifycode", Md5Helper.MD5(chkCode.ToLower(), 16));

//創(chuàng)建畫(huà)布

Bitmap bmp=new Bitmap(codeW, codeH);

Graphics g= Graphics.FromImage(bmp);

g.Clear(Color.White);

//畫(huà)噪線

for (int i=0; i < 1; i++)

{

int x1= rnd.Next(codeW);

int y1= rnd.Next(codeH);

int x2= rnd.Next(codeW);

int y2= rnd.Next(codeH);

Color clr= color[rnd.Next(color.Length)];

g.DrawLine(new Pen(clr), x1, y1, x2, y2);

}

//畫(huà)驗(yàn)證碼字符串

for (int i=0; i < chkCode.Length; i++)

{

string fnt= font[rnd.Next(font.Length)];

Font ft=new Font(fnt, fontSize);

Color clr= color[rnd.Next(color.Length)];

g.DrawString(chkCode[i].ToString(), ft,new SolidBrush(clr), (float)i * 18, (float)0);

}

//將驗(yàn)證碼圖片寫(xiě)入內(nèi)存流,并將其以 "image/Png" 格式輸出

MemoryStream ms=new MemoryStream();

try

{

bmp.Save(ms, ImageFormat.Png);

return ms.ToArray();

}

catch (Exception)

{

return null;

}

finally

{

g.Dispose();

bmp.Dispose();

}

No.3 發(fā)布部署運(yùn)行

直接上圖,不會(huì)的看這里 http://www.linuxidc.com/Linux/2017-02/140957.htm

九度快排系統(tǒng)und-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;" title="image" src="http://www.linuxidc.com/upload/2017_02/170223090881812.png" alt="image" width="361" height="168" border="0" />

注意:驗(yàn)證碼Windows下生成無(wú)壓力,我用的Ubuntu 14,需要安裝gdi包,運(yùn)行日志中會(huì)有提示壮不。

安裝方法:

Ubuntu 16.04:

apt-get install libgdiplus

cd /usr/lib

ln -s libgdiplus.so gdiplus.dll

Fedora 23:

dnf install libgdiplus

cd /usr/lib64/

ln -s libgdiplus.so.0 gdiplus.dll

CentOS 7:

yum install autoconf automake libtool

yum install freetype-devel fontconfig libXft-devel

yum install libjpeg-turbo-devel libpng-devel giflib-devel libtiff-devel libexif-devel

yum install glib2-devel cairo-devel

git clone https://github.com/mono/libgdiplus

cd libgdiplus

./autogen.sh

make

make install

cd/usr/lib64/

ln -s /usr/local/lib/libgdiplus.so gdiplus.dll

本文永久更新鏈接地址:http://www.linuxidc.com/Linux/2017-02/140958.htm

linux

Ubuntu 14.04下.Net Core 安裝部署過(guò)程

Ubuntu 14.04搭建GitLab服務(wù)器

相關(guān)資訊

.NET Core

.NET Core和.NET Standard有什么不 (今 08:07)

CentOS 7環(huán)境下使用Nginx托管.Net (10月01日)

.NET Core 2.0最終版本發(fā)布了 (08月16日)

論 HTTP 性能,Go 與 .NET Core 一 (10月07日)

.NET Core 2.0 是您的最好選擇嗎? (09月05日)

.NET Core引入性能分析引導(dǎo)優(yōu)化 (08月03日)

本文評(píng)論

查看全部評(píng)論 (0)

表情: 表情

姓名:

匿名

字?jǐn)?shù)

同意評(píng)論聲明

評(píng)論聲明

尊重網(wǎng)上道德,遵守中華人民共和國(guó)的各項(xiàng)有關(guān)法律法規(guī)

承擔(dān)一切因您的行為而直接或間接導(dǎo)致的民事或刑事法律責(zé)任

本站管理人員有權(quán)保留或刪除其管轄留言中的任意內(nèi)容

本站有權(quán)在網(wǎng)站內(nèi)轉(zhuǎn)載或引用您的評(píng)論

參與本評(píng)論即表明您已經(jīng)閱讀并接受上述條款

最新資訊

.NET Core和.NET Standard有什么不同

使用LLDB調(diào)試Swift

Google Cloud和HashiCorp擴(kuò)展合作

Keepalived兩節(jié)點(diǎn)出現(xiàn)雙VIP情況及解決方法

CentOS7安裝配置PostgreSQL9.6

編譯LNMP之Nginx+php-fpm

Apache httpd反向代理使用詳細(xì)分析

平穩(wěn)切換Nginx版本

Microsoft Edge腳本引擎遠(yuǎn)程內(nèi)存破壞漏洞(

廣受歡迎的Dash to Panel GNOME擴(kuò)展程序已

背景:

閱讀新聞

Ubuntu 14.04搭建GitLab服務(wù)器

[日期:2017-02-23]

來(lái)源:Linux社區(qū)

作者:blacktime

[字體:大 中 小]

因?yàn)楣ぷ餍枰罱ㄒ粋€(gè)版本控制器血淌。查看資料,當(dāng)前比較流行的有GitHub,SVN佃乘。由于常用GitLab,所以更傾向于GitLab囱井。下面記錄了Ubuntu 14.04下搭建GitLab服務(wù)器的流程。

1.安裝郵件支持的插件:

sudo apt-get install curl openssh-server ca-certificates postfix

安裝過(guò)程中出現(xiàn)的界面均可選擇默認(rèn)趣避。

2.添加官方源,并安裝:

curl -sS http://packages.gitlab.cc/install/gitlab-ce/script.deb.sh | sudo bash

sudo apt-get install gitlab-ce

出現(xiàn)如下即為安裝完成:

3.安裝好后需要生成配置:

sudo gitlab-ctl reconfigure

出現(xiàn)如下圖,配置生成完畢:

按照上面步驟即可安裝完成gitlab服務(wù)器,網(wǎng)頁(yè)即可正常訪問(wèn)。由于官方源安裝速度堪比蝸牛,于是用迅雷把安裝包下載下來(lái),直接安裝新翎。

sudo dpkg -i gitlab-ce-XXX.deb

安裝好后生成配置即可網(wǎng)頁(yè)訪問(wèn)程帕。

初始賬號(hào)和密碼為root:5iveL!fe,登錄后會(huì)提示修改密碼,修改成自己的密碼即可。

更多GitLab相關(guān)教程見(jiàn)以下內(nèi)容:

Ubuntu 14.04下安裝GitLab指南 http://www.linuxidc.com/Linux/2015-12/126876.htm

如何在Ubuntu Server 14.04下安裝Gitlab中文版 http://www.linuxidc.com/Linux/2015-12/126875.htm

CentOS源碼安裝GitLab漢化版 http://www.linuxidc.com/Linux/2015-10/124648.htm

在 Ubuntu 12.04 上安裝 GitLab http://www.linuxidc.com/Linux/2012-12/75249.htm

GitLab 5.3 升級(jí)注意事項(xiàng) http://www.linuxidc.com/Linux/2013-06/86473.htm

在 CentOS 上部署 GitLab (自托管的Git項(xiàng)目倉(cāng)庫(kù)) http://www.linuxidc.com/Linux/2013-06/85754.htm

在RHEL6/CentOS6/ScientificLinux6上安裝GitLab 6.0.2 http://www.linuxidc.com/Linux/2014-03/97831.htm

CentOS 6.5安裝GitLab教程及相關(guān)問(wèn)題解決 http://www.linuxidc.com/Linux/2014-05/101526.htm

升級(jí)GitLab到8.2.0 http://www.linuxidc.com/Linux/2015-12/126220.htm

GitLab 的詳細(xì)介紹:請(qǐng)點(diǎn)這里

GitLab 的下載地址:請(qǐng)點(diǎn)這里

本文永久更新鏈接地址:http://www.linuxidc.com/Linux/2017-02/140959.htm

linux

.Net Core 實(shí)現(xiàn)驗(yàn)證碼功能

獲取Docker私有倉(cāng)庫(kù)中所有鏡像的方法

相關(guān)資訊

GitLab服務(wù)器搭建 Ubuntu 14.04搭建GitLab服務(wù)器

本文評(píng)論

查看全部評(píng)論 (0)

表情: 表情

姓名:

匿名

字?jǐn)?shù)

同意評(píng)論聲明

評(píng)論聲明

尊重網(wǎng)上道德,遵守中華人民共和國(guó)的各項(xiàng)有關(guān)法律法規(guī)

承擔(dān)一切因您的行為而直接或間接導(dǎo)致的民事或刑事法律責(zé)任

本站管理人員有權(quán)保留或刪除其管轄留言中的任意內(nèi)容

本站有權(quán)在網(wǎng)站內(nèi)轉(zhuǎn)載或引用您的評(píng)論

參與本評(píng)論即表明您已經(jīng)閱讀并接受上述條款

最新資訊

獲取Docker私有倉(cāng)庫(kù)中所有鏡像的方法

Python實(shí)現(xiàn)子網(wǎng)掩碼地址與位長(zhǎng)的相互轉(zhuǎn)換

Ubuntu 14.04搭建GitLab服務(wù)器

.Net Core 實(shí)現(xiàn)驗(yàn)證碼功能

Ubuntu 14.04下.Net Core 安裝部署過(guò)程

.NET Core 工具中的新內(nèi)容

深度學(xué)習(xí)在Gilt上的應(yīng)用

Twitter數(shù)據(jù)中心網(wǎng)絡(luò)及軟件體系建設(shè)經(jīng)驗(yàn)

Linus Torvalds: 成功的項(xiàng)目源于99%的汗水

在Linux上編譯dotnet cli的源代碼生成.NET

背景:

閱讀新聞

Python實(shí)現(xiàn)子網(wǎng)掩碼地址與位長(zhǎng)的相互轉(zhuǎn)換

[日期:2017-02-23]

來(lái)源:Linux社區(qū)

作者:blacktime

[字體:大 中 小]

某日,使用CentOS7,發(fā)現(xiàn)網(wǎng)絡(luò)配置時(shí),子網(wǎng)掩碼需要手動(dòng)轉(zhuǎn)換;因?yàn)镃entOS 7的網(wǎng)絡(luò)配置方式為:

nmcli connection enp4s0 modify ipv4.methord manual ipv4.address "192.168.1.120/24" ipv4.gateway "192.168.1.1" ipv4.dns "223.5.5.5"

其中沒(méi)有子網(wǎng)掩碼的配置項(xiàng)地啰。于是,寫(xiě)一函數(shù),實(shí)現(xiàn)子網(wǎng)掩碼和位長(zhǎng)的相互轉(zhuǎn)換愁拭。

一:子網(wǎng)掩碼轉(zhuǎn)化為位長(zhǎng):

# coding:utf-8

def exchange_mask(mask):

# 計(jì)算二進(jìn)制字符串中 '1' 的個(gè)數(shù)

count_bit=lambda bin_str: len([i for i in bin_str if i=='1'])

# 分割字符串格式的子網(wǎng)掩碼為四段列表

mask_splited=mask.split('.')

# 轉(zhuǎn)換各段子網(wǎng)掩碼為二進(jìn)制, 計(jì)算十進(jìn)制

mask_count=[count_bit(bin(int(i))) for i in mask_splited]

return sum(mask_count)

if __name__=='__main__':

print exchange_mask('255.255.0.0')

二:位長(zhǎng)轉(zhuǎn)化為子網(wǎng)掩碼:

#codint=utf8

def exchange_maskint(mask_int):

bin_arr=['0' for i in range(32)]

for i in range(mask_int):

bin_arr[i]='1'

tmpmask=[''.join(bin_arr[i * 8:i * 8 + 8]) for i in range(4)]

tmpmask=[str(int(tmpstr, 2)) for tmpstr in tmpmask]

return '.'.join(tmpmask)

if __name__=='__main__':

print exchange_maskint(24)

下面關(guān)于Python的文章您也可能喜歡,不妨參考下:

《Python核心編程 第二版》.(Wesley J. Chun ).[高清PDF中文版] 下載見(jiàn) http://www.linuxidc.com/Linux/2013-06/85425.htm

零基礎(chǔ)如何入門(mén)Python http://www.linuxidc.com/Linux/2016-10/136485.htm

Ubuntu 14.04安裝Python 3.3.5 http://www.linuxidc.com/Linux/2014-05/101481.htm

CentOS 6.5 腳本自動(dòng)化裝 Python2.6升級(jí)2.7 http://www.linuxidc.com/Linux/2017-02/140406.htm

CentOS上源碼安裝Python3.4 http://www.linuxidc.com/Linux/2015-01/111870.htm

Ubuntu 14.04下Python數(shù)據(jù)處理環(huán)境搭建 http://www.linuxidc.com/Linux/2017-01/139568.htm

Python Paramiko模塊安裝和使用 http://www.linuxidc.com/Linux/2017-01/139973.htm

《Python開(kāi)發(fā)技術(shù)詳解》.( 周偉,宗杰).[高清PDF掃描版+隨書(shū)視頻+代碼] http://www.linuxidc.com/Linux/2013-11/92693.htm

在CentOS 6.5上安裝Python2.7 http://www.linuxidc.com/Linux/2016-10/136206.htm

Ubuntu 14.04 LTS下編譯安裝Open Babel和Python語(yǔ)言綁定 http://www.linuxidc.com/Linux/2017-01/139569.htm

Python常見(jiàn)數(shù)據(jù)結(jié)構(gòu)整理 http://www.linuxidc.com/Linux/2017-02/140613.htm

本文永久更新鏈接地址:http://www.linuxidc.com/Linux/2017-02/140960.htm

linux

Java虛擬機(jī)收集器之老年代收集器

從0移植uboot (一) _配置分析

相關(guān)資訊

子網(wǎng)掩碼地址與位長(zhǎng)轉(zhuǎn)換 子網(wǎng)掩碼地

本文評(píng)論

查看全部評(píng)論 (0)

表情: 表情

姓名:

匿名

字?jǐn)?shù)

同意評(píng)論聲明

評(píng)論聲明

尊重網(wǎng)上道德,遵守中華人民共和國(guó)的各項(xiàng)有關(guān)法律法規(guī)

承擔(dān)一切因您的行為而直接或間接導(dǎo)致的民事或刑事法律責(zé)任

本站管理人員有權(quán)保留或刪除其管轄留言中的任意內(nèi)容

本站有權(quán)在網(wǎng)站內(nèi)轉(zhuǎn)載或引用您的評(píng)論

參與本評(píng)論即表明您已經(jīng)閱讀并接受上述條款

最新資訊

從0移植uboot (一) _配置分析

Cisco Prime Collaboration Assurance信息

CentOS 7安裝MySQL分支MariaDB

CentOS 7.2部署Percona Monitoring and

Chrome Canary 新增對(duì) MacBook Pro Touch

CentOS安裝MariaDB數(shù)據(jù)庫(kù)(MySQL的分支)

CentOS 7.2部署FTP

Docker中運(yùn)行的Java 9將能調(diào)整內(nèi)存限制

Twitter基于React的網(wǎng)絡(luò)協(xié)議棧媲美原生性能

LLVM 4中將加入新的LLVM鏈接器LLD

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市亏吝,隨后出現(xiàn)的幾起案子岭埠,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,542評(píng)論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件惜论,死亡現(xiàn)場(chǎng)離奇詭異许赃,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)馆类,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門(mén)混聊,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人乾巧,你說(shuō)我怎么就攤上這事句喜。” “怎么了沟于?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,912評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵咳胃,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我旷太,道長(zhǎng)展懈,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,449評(píng)論 1 293
  • 正文 為了忘掉前任泳秀,我火速辦了婚禮标沪,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘嗜傅。我一直安慰自己金句,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,500評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布吕嘀。 她就那樣靜靜地躺著违寞,像睡著了一般。 火紅的嫁衣襯著肌膚如雪偶房。 梳的紋絲不亂的頭發(fā)上趁曼,一...
    開(kāi)封第一講書(shū)人閱讀 51,370評(píng)論 1 302
  • 那天,我揣著相機(jī)與錄音棕洋,去河邊找鬼挡闰。 笑死,一個(gè)胖子當(dāng)著我的面吹牛掰盘,可吹牛的內(nèi)容都是我干的摄悯。 我是一名探鬼主播,決...
    沈念sama閱讀 40,193評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼愧捕,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼奢驯!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起次绘,我...
    開(kāi)封第一講書(shū)人閱讀 39,074評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤瘪阁,失蹤者是張志新(化名)和其女友劉穎撒遣,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體管跺,經(jīng)...
    沈念sama閱讀 45,505評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡义黎,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,722評(píng)論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了伙菜。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片轩缤。...
    茶點(diǎn)故事閱讀 39,841評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖贩绕,靈堂內(nèi)的尸體忽然破棺而出火的,到底是詐尸還是另有隱情,我是刑警寧澤淑倾,帶...
    沈念sama閱讀 35,569評(píng)論 5 345
  • 正文 年R本政府宣布馏鹤,位于F島的核電站,受9級(jí)特大地震影響娇哆,放射性物質(zhì)發(fā)生泄漏湃累。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,168評(píng)論 3 328
  • 文/蒙蒙 一碍讨、第九天 我趴在偏房一處隱蔽的房頂上張望治力。 院中可真熱鬧,春花似錦勃黍、人聲如沸宵统。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,783評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)马澈。三九已至,卻和暖如春弄息,著一層夾襖步出監(jiān)牢的瞬間痊班,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,918評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工摹量, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留涤伐,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,962評(píng)論 2 370
  • 正文 我出身青樓缨称,卻偏偏與公主長(zhǎng)得像废亭,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子具钥,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,781評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容