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