.Net Core 實現驗證碼功能

背景:


閱讀新聞

.Net Core 實現驗證碼功能

[日期:2017-02-23]

來源:Linux社區

作者:niao

[字體:大 中 小]

本文介紹.Net Core下用第三方ZKWeb.System.Drawing實現驗證碼功能。

通過測試的系統:

Windows8.1 64bit

Ubuntu Server16.04 LTS 64bit

Fedora24 64bit

CentOS7.2 64bit

可以實現以下功能:

Open jpg, bmp, ico, png

Save jpg, bmp, ico, png

Resize image

Draw graphics with brush and pen

Open font and drawstring

以上是官方給的資料。

No.1 項目引入ZKWeb.System.Drawing

NuGet引入包,不會的自己Google。

No.2 簡單的驗證碼生成

int codeW=80;

int codeH=30;

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

//顏色列表,用于驗證碼、噪線、噪點

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

//字體列表,用于驗證碼

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

//驗證碼的字符集,去掉了一些容易混淆的字符

//寫入Session、驗證碼加密

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

//創建畫布

Bitmap bmp=new Bitmap(codeW, codeH);

Graphics g= Graphics.FromImage(bmp);

g.Clear(Color.White);

//畫噪線

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);

}

//畫驗證碼字符串

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);

}

//將驗證碼圖片寫入內存流,并將其以 "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 發布部署運行

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

九度快排系統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" />

注意:驗證碼Windows下生成無壓力,我用的Ubuntu 14,需要安裝gdi包,運行日志中會有提示。

安裝方法:

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 安裝部署過程

Ubuntu 14.04搭建GitLab服務器

相關資訊

.NET Core

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

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

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

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

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

.NET Core引入性能分析引導優化 (08月03日)

本文評論

查看全部評論 (0)

表情: 表情

姓名:

匿名

字數

同意評論聲明

評論聲明

尊重網上道德,遵守中華人民共和國的各項有關法律法規

承擔一切因您的行為而直接或間接導致的民事或刑事法律責任

本站管理人員有權保留或刪除其管轄留言中的任意內容

本站有權在網站內轉載或引用您的評論

參與本評論即表明您已經閱讀并接受上述條款

最新資訊

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

使用LLDB調試Swift

Google Cloud和HashiCorp擴展合作

Keepalived兩節點出現雙VIP情況及解決方法

CentOS7安裝配置PostgreSQL9.6

編譯LNMP之Nginx+php-fpm

Apache httpd反向代理使用詳細分析

平穩切換Nginx版本

Microsoft Edge腳本引擎遠程內存破壞漏洞(

廣受歡迎的Dash to Panel GNOME擴展程序已

背景:

閱讀新聞

Ubuntu 14.04搭建GitLab服務器

[日期:2017-02-23]

來源:Linux社區

作者:blacktime

[字體:大 中 小]

因為工作需要搭建一個版本控制器。查看資料,當前比較流行的有GitHub,SVN。由于常用GitLab,所以更傾向于GitLab。下面記錄了Ubuntu 14.04下搭建GitLab服務器的流程。

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

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

安裝過程中出現的界面均可選擇默認。

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

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

sudo apt-get install gitlab-ce

出現如下即為安裝完成:

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

sudo gitlab-ctl reconfigure

出現如下圖,配置生成完畢:

按照上面步驟即可安裝完成gitlab服務器,網頁即可正常訪問。由于官方源安裝速度堪比蝸牛,于是用迅雷把安裝包下載下來,直接安裝。

sudo dpkg -i gitlab-ce-XXX.deb

安裝好后生成配置即可網頁訪問。

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

更多GitLab相關教程見以下內容:

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 升級注意事項 http://www.linuxidc.com/Linux/2013-06/86473.htm

在 CentOS 上部署 GitLab (自托管的Git項目倉庫) 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教程及相關問題解決 http://www.linuxidc.com/Linux/2014-05/101526.htm

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

GitLab 的詳細介紹:請點這里

GitLab 的下載地址:請點這里

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

linux

.Net Core 實現驗證碼功能

獲取Docker私有倉庫中所有鏡像的方法

相關資訊

GitLab服務器搭建 Ubuntu 14.04搭建GitLab服務器

本文評論

查看全部評論 (0)

表情: 表情

姓名:

匿名

字數

同意評論聲明

評論聲明

尊重網上道德,遵守中華人民共和國的各項有關法律法規

承擔一切因您的行為而直接或間接導致的民事或刑事法律責任

本站管理人員有權保留或刪除其管轄留言中的任意內容

本站有權在網站內轉載或引用您的評論

參與本評論即表明您已經閱讀并接受上述條款

最新資訊

獲取Docker私有倉庫中所有鏡像的方法

Python實現子網掩碼地址與位長的相互轉換

Ubuntu 14.04搭建GitLab服務器

.Net Core 實現驗證碼功能

Ubuntu 14.04下.Net Core 安裝部署過程

.NET Core 工具中的新內容

深度學習在Gilt上的應用

Twitter數據中心網絡及軟件體系建設經驗

Linus Torvalds: 成功的項目源于99%的汗水

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

背景:

閱讀新聞

Python實現子網掩碼地址與位長的相互轉換

[日期:2017-02-23]

來源:Linux社區

作者:blacktime

[字體:大 中 小]

某日,使用CentOS7,發現網絡配置時,子網掩碼需要手動轉換;因為CentOS 7的網絡配置方式為:

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"

其中沒有子網掩碼的配置項。于是,寫一函數,實現子網掩碼和位長的相互轉換。

一:子網掩碼轉化為位長:

# coding:utf-8

def exchange_mask(mask):

# 計算二進制字符串中 '1' 的個數

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

# 分割字符串格式的子網掩碼為四段列表

mask_splited=mask.split('.')

# 轉換各段子網掩碼為二進制, 計算十進制

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')

二:位長轉化為子網掩碼:

#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)

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

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

零基礎如何入門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 腳本自動化裝 Python2.6升級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數據處理環境搭建 http://www.linuxidc.com/Linux/2017-01/139568.htm

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

《Python開發技術詳解》.( 周偉,宗杰).[高清PDF掃描版+隨書視頻+代碼] 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語言綁定 http://www.linuxidc.com/Linux/2017-01/139569.htm

Python常見數據結構整理 http://www.linuxidc.com/Linux/2017-02/140613.htm

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

linux

Java虛擬機收集器之老年代收集器

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

相關資訊

子網掩碼地址與位長轉換 子網掩碼地

本文評論

查看全部評論 (0)

表情: 表情

姓名:

匿名

字數

同意評論聲明

評論聲明

尊重網上道德,遵守中華人民共和國的各項有關法律法規

承擔一切因您的行為而直接或間接導致的民事或刑事法律責任

本站管理人員有權保留或刪除其管轄留言中的任意內容

本站有權在網站內轉載或引用您的評論

參與本評論即表明您已經閱讀并接受上述條款

最新資訊

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

Cisco Prime Collaboration Assurance信息

CentOS 7安裝MySQL分支MariaDB

CentOS 7.2部署Percona Monitoring and

Chrome Canary 新增對 MacBook Pro Touch

CentOS安裝MariaDB數據庫(MySQL的分支)

CentOS 7.2部署FTP

Docker中運行的Java 9將能調整內存限制

Twitter基于React的網絡協議棧媲美原生性能

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

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容