电脑计算机编程入门教程自学编程语言_aardio做网站登陆页怎么生成图片验证码?

Admin Admin
发布:2022-03-22 08:00:00 分类:群聊整理
aardio做网站登陆页怎么生成图片验证码?
aardio可以用来做桌面软件,
也可以用来做网站,
只需要学会一门语言就能前后端通吃.
用aardio做网站的时候,
通常会弄一个图片验证码防止别人暴力猜解帐号密码,
aardio怎么生成图片验证码?
下面是示例源码:
import win.ui;
/*DSG{{*/
var winform = win.form(text="aardio教程 简码编程www.jianma123.com";right=755;bottom=623)
winform.add(
button={cls="button";text="Button";left=581;top=502;right=660;bottom=554;z=2};
custom={cls="custom";text="自定义控件";left=17;top=373;right=504;bottom=606;edge=1;z=5};
editCode={cls="edit";left=580;top=452;right=660;bottom=481;edge=1;z=4};
editLog={cls="edit";left=17;top=13;right=742;bottom=362;autohscroll=false;edge=1;multiline=1;vscroll=1;z=3};
picturebox={cls="picturebox";left=580;top=399;right=660;bottom=435;edge=1;z=1}
)
/*}}*/

class cyweb{
ctor(width=80,height=36,size=4){
..math.randomize();
this.width = width; //生成图片宽
this.height = height; //图片高
this.size = size; //验证码位数
this.charset = "abcdefghkmnprstuvwxyz0123456789"; //验证码随机值
this.code = ..string.random(this.size,this.charset);
};

get = function(){
return this.code;
}

color = function(n,m){
var x = ..string.format("%02X",..math.random(n,m));
var y = ..string.format("%02X",..math.random(n,m));
var z = ..string.format("%02X",..math.random(n,m));
var ys = "0xFF"++tostring(x)++tostring(y)++tostring(z);
return tonumber(ys);
}

creat = function(){
import gdip;
var bmp = gdip.bitmap(this.width,this.height);
var graphics = bmp.graphics;
//画背景
var brush = gdip.solidBrush(this.color(157,255));
graphics.fillRectangle(brush,0,0,this.width,this.height);

//画线
for(i=0;6;1){
var pen = gdip.pen(this.color(0,156), 1, 2/*_GdipUnitPixel*/ );
graphics.drawLine(pen,..math.random(0,this.width),..math.random(0,this.height),..math.random(0,this.width),..math.random(0,this.height));
}
//杂色
for(i=0;60;1){
var brush = gdip.solidBrush(this.color(200,255));
var family = gdip.family("Tahoma");
var strformat = gdip.stringformat ();
strformat.align = 0/*_GdipStringAlignmentNear*/;
var curFont = family.createFont(..math.random(1,15),, 2/*_GdipUnitPixel*/);
graphics.smoothingMode = 4/*_GdipSmoothingModeAntiAlias*/ ;
graphics.textRenderingHint = 3/*_GdipTextRenderingHintAntiAliasGridFit*/;

rclayout = gdip.RECTF();
rclayout.x = ..math.random(0,this.width)
rclayout.y = ..math.random(0,this.height)
graphics.drawString("*",curFont, rclayout, strformat,brush);
}

var x = this.width/4;
var tab = ..string.split(this.code);
for(i=1;#tab;1){
var brush = gdip.solidBrush(this.color(0,156));
var family = gdip.family("Tahoma");
var strformat = gdip.stringformat ();
strformat.align = 0/*_GdipStringAlignmentNear*/;
var curFont = family.createFont(26,, 2/*_GdipUnitPixel*/);
graphics.smoothingMode = 4/*_GdipSmoothingModeAntiAlias*/ ;
graphics.textRenderingHint = 3/*_GdipTextRenderingHintAntiAliasGridFit*/;

rclayout = gdip.RECTF();
rclayout.x = x*(i-1)+..math.random(1,3);
rclayout.y = (this.height-30)/2.4;
graphics.drawString(tab[i],curFont, rclayout, strformat,brush);
}

var data = ..raw.tostring(bmp.saveToBuffer("*.jpg",50))
bmp.dispose();

import crypt.bin;

//返回用于网页的base64图像和用于软件控件的图像
return 'data:image/jpg;base64,'++crypt.bin.encodeBase64(data),data;

}
}

import web.form;
var wb = web.form(winform.custom);

winform.button.oncommand = function(id,event){
var va = cyweb();
var imgBase64,imgObj = va.creat();
var imgCodeTxt = va.get();
winform.editLog.text = imgBase64;
winform.picturebox.image = imgObj;
winform.editCode.text = imgCodeTxt;
wb.html = `
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
</head>
<body>
<div class="captcha-img">
<img id="captchaPic" src="`++imgBase64++`">
</div>

</body>
</html>
`;
}

winform.show();
win.loopMessage();

[ 发单/接单 ]
换IP投票软件
PC蛋蛋自动挂机投注
新浪微博发微博显示尾巴的方法,比如显示来自iphone 7
百度文库批量自动上传软件
一点资讯app刷阅读量/评论/收藏/订阅功能/手机号注册
定做一个阿迪达斯官网注册器(需要破点击文字式验证码)
定制人人网自动注册/修改资料/采集/私聊软件
酷狗繁星直播网页协yi
YY多功能刷订阅刷粉丝
滑块验证码本地识别
狼人杀POST QQ登录注册 获取金币数量
做个贴吧发发帖的软件懂的来
今日头条账号保存cookie
抖音粉丝软件定做,只要粉丝
百家号自媒体发文软件定制
哔哩哔哩播放量
读取TB某个商品上架时间和相关信息
网易博客软件定制
定制天涯论坛发帖软件
定制今日头条批量自动发私信软件
[ 站内搜索 ]
[ 最近热帖 ]
万能助手 -- 扩展库大全集 13757
用aardio创建web工程图文讲解(1) 12848
电脑编程入门自学:Fiddler https 抓包时提示创建根证书不成功问题彻底解决(https插件dll方式) 11748
aardio绘图演示 11416
通过chrome.dll中间件控制外部chrome浏览器 10132
我常用的aardio技巧 9781
《边学C语言边赚钱——简码编程入门教程》系列集合 9620
aardio使用http或whttp进行get/post请求时经常cookies失效怎么办?__电脑计算机编程入门教程自学 9324
[源码下载]简码视频加密解密播放工具个人版v1.0发布,永久免费开源的知识变现神器 8559
python人工智能爬虫系列:怎么查看python版本_电脑计算机编程入门教程自学 8052
编程入门教程:aardio批量上传文件并显示进度条 7889
aardio调用nodejs的ws模块做一个简单的聊天通信示例 7042
电脑计算机编程入门教程自学:原生JavaScript判断字符是否为A-Za-z英文字母 6911
电脑计算机编程入门教程自学:腾讯tx或极验geetest滑块按住拖动完成拼图验证成功破解思路及源码 6506
乐玩插件AARDIO调用 6092
[ 近期热答 ]
电脑计算机编程入门教程自学:什么是buffer缓冲区? 1
aardio_代码编辑框书签管理器开源 1
aardio_怎么用ide库从代码编辑框中取出指定行的源码? 1
aardio_codepage代码页编码乱码暴力猜解工具 1
aardio内嵌echarts图表添加鼠标事件响应功能 2
aardio列表框listbox_模糊查找和精确查找 1
8亿QQ绑定手机泄露:通过腾讯QQ号查询QQ绑定的手机号码漏洞! 1
carl listviewex调用例子----------源码搬运工 2
Aardio内嵌Electron浏览框怎么正确添加启动参数? 1
Aardio取汉字的字节数或字符数 1
怎么实现mssql图片数据的读写 2
aardio_从49个数字里选六个和值为150的不重复的数字 1
在嵌入wps的时候,多了一个 透明的边框,这个怎么消除它 1
万能助手入门帮助教程:学会科学地管理工作文件 1
Aaardio开发内嵌Electron浏览框放服务器上无法下载组件的解决办法 1