.Net Core 实现验证码功能

2017-10-17  本文已影响0人  成麓撼aubr

背景:


阅读新闻

.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

上一篇下一篇

猜你喜欢

热点阅读