背景:
閱讀新聞
.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
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
.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
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