背景:
阅读新闻
.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
网友评论