网站首页 > 易语言相关 > 网络相关源码 正文
.版本 2 .支持库 spec .程序集 窗口程序集_启动窗口 .程序集变量 token, 文本型 .子程序 __启动窗口_创建完毕 token = 阿里云_获取token (#AccessKeyId, #AccessKeySecret) .子程序 _按钮1_被单击 写到文件 (取运行目录 () + “1.mp3”, 阿里云_朗读文本 (编辑框1.内容, 文本_取右边 (组合框1.取项目文本 (组合框1.现行选中项), “|”, , ), token, #appkey)) 播放MP3 (1, 取运行目录 () + “1.mp3”) .子程序 阿里云_朗读文本, 字节集, , 本命令由【精易网页调试助手】生成,请配合精易模块使用。 .参数 文本, 文本型 .参数 朗读人, 文本型 .参数 token, 文本型 .参数 appkey, 文本型 .局部变量 局_网址, 文本型 .局部变量 局_方式, 整数型 .局部变量 ADD_协议头, 类_POST数据类 .局部变量 局_提交协议头, 文本型 .局部变量 局_结果, 字节集 .局部变量 局_返回, 文本型 局_网址 = “https://nls-gateway.cn-shanghai.aliyuncs.com/stream/v1/tts?appkey=” + appkey + “&token=” + token + “&text=” + 编码_URL编码 (文本, 真, 真) + “&voice=” + 朗读人 + “&format=mp3&sample_rate=16000” 局_方式 = 0 ADD_协议头.添加 (“User-Agent”, “Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.87 Safari/537.36”, ) 局_提交协议头 = ADD_协议头.获取协议头数据 () 局_结果 = 网页_访问_对象 (局_网址, 局_方式, , , , 局_提交协议头, , , , , , , , , , , , , ) 返回 (局_结果) .子程序 阿里云_获取token, 文本型, , 本命令由【精易网页调试助手】生成,请配合精易模块使用。 .参数 AccessKeyId, 文本型 .参数 AccessKeySecret, 文本型 .局部变量 局_网址, 文本型 .局部变量 局_方式, 整数型 .局部变量 ADD_数据包, 类_POST数据类 .局部变量 局_提交数据, 文本型 .局部变量 ADD_协议头, 类_POST数据类 .局部变量 局_提交协议头, 文本型 .局部变量 局_结果, 字节集 .局部变量 局_返回, 文本型 .局部变量 现行时间戳, 文本型 .局部变量 uuid, 文本型 .局部变量 Signature, 文本型 .局部变量 参数, 文本型 .局部变量 json, 类_json ' http://nls-meta.cn-shanghai.aliyuncs.com 现行时间戳 = 时间_格式化 (增减时间 (取现行时间 (), 6, -8), “yyyy-MM-ddT”, “hh%3Amm%3AssZ”, 真) uuid = 程序_生成GUID () 局_网址 = “http://nls-meta.cn-shanghai.aliyuncs.com” 局_方式 = 1 ADD_数据包.添加 (“AccessKeyId”, AccessKeyId, ) ADD_数据包.添加 (“Action”, “CreateToken”, ) ADD_数据包.添加 (“Format”, “JSON”, ) ADD_数据包.添加 (“RegionId”, “cn-shanghai”, ) ADD_数据包.添加 (“SignatureMethod”, “HMAC-SHA1”, ) ADD_数据包.添加 (“SignatureNonce”, uuid, ) ADD_数据包.添加 (“SignatureVersion”, “1.0”, ) ADD_数据包.添加 (“Timestamp”, 现行时间戳, 真) ' 2019-03-25T09%3A07%3A52Z ADD_数据包.添加 (“Version”, “2019-02-28”, ) ' ADD_数据包.添加 (“AccessKeyId”, “my_access_key_id”, ) ' ADD_数据包.添加 (“Action”, “CreateToken”, ) ' ADD_数据包.添加 (“Format”, “JSON”, ) ' ADD_数据包.添加 (“RegionId”, “cn-shanghai”, ) ' ADD_数据包.添加 (“SignatureMethod”, “HMAC-SHA1”, ) ' ADD_数据包.添加 (“SignatureNonce”, “b924c8c3-6d03-4c5d-ad36-d984d3116788”, ) ' ADD_数据包.添加 (“SignatureVersion”, “1.0”, ) ' ADD_数据包.添加 (“Timestamp”, “2019-04-18T08%3A32%3A31Z”, ) ' ADD_数据包.添加 (“Version”, “2019-02-28”, ) ' 2019-03-25T09%3A07%3A52Z 参数 = “POST&%2F&” + 子文本替换 (编码_URL编码 (ADD_数据包.获取Post数据 (), 真, 真), “%5F”, “_”, , , 真) 调试输出 (参数) Signature = 编码_BASE64编码 (字节集_十六进制到字节集 (EC_加密_hex_hmac_sha1_字节集 (到字节集 (AccessKeySecret + “&”), 到字节集 (参数)))) 调试输出 (Signature) ' 调试输出 (现行时间戳, uuid) ' ADD_数据包.添加 (“Signature”, 编码_URL编码 (Signature, 真, 真), ) 局_提交数据 = ADD_数据包.获取Post数据 () ADD_协议头.添加 (“Host”, “nls-meta.cn-shanghai.aliyuncs.com”, ) ADD_协议头.添加 (“User-Agent”, “curl/7.49.1”, ) ADD_协议头.添加 (“Accept”, “*/*”, ) ADD_协议头.添加 (“Content-type”, “application/x-www-form-urlencoded”, ) ADD_协议头.添加 (“Content-Length”, 到文本 (取文本长度 (“Signature=” + 编码_URL编码 (Signature, 真, 真) + “&” + 局_提交数据)), ) 局_提交协议头 = ADD_协议头.获取协议头数据 () 调试输出 (“Signature=” + 编码_URL编码 (Signature, 真, 真) + “&” + 局_提交数据) 局_结果 = 网页_访问_对象 (局_网址, 局_方式, “Signature=” + 编码_URL编码 (Signature, 真, 真) + “&” + 局_提交数据, , , 局_提交协议头, , , , , , , , , , , , , ) 局_返回 = 到文本 (编码_编码转换对象 (局_结果, , , )) json.解析 (局_返回) 返回 (json.取通用属性 (“Token.Id”, )) .子程序 EC_加密_hex_hmac_sha1_字节集, 文本型, 公开 .参数 k, 字节集 .参数 d, 字节集 返回 (EC_加密_rstr2hex (EC_加密_rstr_hmac_sha1 (k, d))) .子程序 EC_加密_rstr2hex, 文本型, 公开 .参数 input, 字节集 .局部变量 hex_tab, 字节集 .局部变量 output, 字节集 .局部变量 length, 整数型 .局部变量 i, 整数型 .局部变量 x, 整数型 hex_tab = { 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 97, 98, 99, 100, 101, 102 } length = 取字节集长度 (input) .变量循环首 (0, length, 1, i) .如果真 (i ≥ length) 跳出循环 () .如果真结束 ' x = input.charCodeAt(i); ' output += hex_tab.charAt((x >>> 4) & 0x0F) + hex_tab.charAt( x & 0x0F); x = input [i + 1] output = output + 到字节集 (hex_tab [位与 (EC_加密_逻辑右移 (x, 4), 15) + 1]) + 到字节集 (hex_tab [位与 (x, 15) + 1]) .变量循环尾 () 返回 (到文本 (output)) .子程序 EC_加密_rstr_hmac_sha1, 字节集, 公开 .参数 key, 字节集 .参数 data, 字节集 .局部变量 bkey, 整数型, , "0" .局部变量 length, 整数型 .局部变量 ipad, 整数型, , "16" .局部变量 opad, 整数型, , "16" .局部变量 i, 整数型 .局部变量 数组容器, 整数型, , "0" .局部变量 hash, 整数型, , "0" EC_加密_rstr2binb (key, bkey) length = 取数组成员数 (bkey) .如果真 (length > 16) EC_加密_binb_sha1 (bkey, 取字节集长度 (key) × 8, bkey) .如果真结束 .如果真 (取数组成员数 (bkey) < 16) 重定义数组 (bkey, 真, 16) .如果真结束 .变量循环首 (1, 16, 1, i) ipad [i] = 位异或 (bkey [i], 909522486) opad [i] = 位异或 (bkey [i], 1549556828) .变量循环尾 () EC_加密_rstr2binb (data, 数组容器) 加入成员 (ipad, 数组容器) EC_加密_binb_sha1 (ipad, 512 + 取字节集长度 (data) × 8, hash) 清除数组 (数组容器) 加入成员 (opad, hash) EC_加密_binb_sha1 (opad, 512 + 160, 数组容器) 返回 (EC_加密_binb2rstr (数组容器)) .子程序 EC_加密_rstr2binb, , 公开 .参数 input, 字节集 .参数 output, 整数型, 数组 .局部变量 inputlength, 整数型 .局部变量 outputlength, 整数型 .局部变量 i, 整数型 .局部变量 jp, 整数型 inputlength = 取字节集长度 (input) 重定义数组 (output, 假, 右移 (inputlength, 2)) outputlength = 取数组成员数 (output) .如果真 (outputlength < 右移 (inputlength × 8, 5) + 1) 重定义数组 (output, 真, 右移 (inputlength × 8, 5) + 1) .如果真结束 .变量循环首 (0, outputlength, 1, i) .如果真 (i ≥ outputlength) 跳出循环 () .如果真结束 output [i + 1] = 0 .变量循环尾 () i = 0 .变量循环首 (0, inputlength × 8, 8, i) .如果真 (i ≥ inputlength × 8) 跳出循环 () .如果真结束 output [右移 (i, 5) + 1] = 位或 (output [右移 (i, 5) + 1], 左移 (位与 (input [i ÷ 8 + 1], 255), 24 - i % 32)) .变量循环尾 () .子程序 EC_加密_逻辑右移, 整数型, 公开, (逻辑右移) (算术右移) 寄存器,1 .参数 欲移动的整数, 整数型 .参数 欲被移动的位数, 字节型 置入代码 ({ 81, 139, 69, 8, 138, 77, 12, 211, 232, 89, 139, 229, 93, 194, 8, 0 }) 返回 (-1) .子程序 EC_加密_binb_sha1, , 公开 .参数 x, 整数型, 数组 .参数 len, 整数型 .参数 return, 整数型, 参考 数组 .局部变量 w, 整数型, , "80" .局部变量 a, 整数型 .局部变量 b, 整数型 .局部变量 c, 整数型 .局部变量 d, 整数型 .局部变量 e, 整数型 .局部变量 i, 整数型 .局部变量 xlength, 整数型 .局部变量 olda, 整数型 .局部变量 oldb, 整数型 .局部变量 oldc, 整数型 .局部变量 oldd, 整数型 .局部变量 olde, 整数型 .局部变量 j, 整数型 .局部变量 t, 整数型 .局部变量 ret, 文本型 .局部变量 tmp, 整数型 xlength = 取数组成员数 (x) tmp = 左移 (右移 (len + 64, 9), 4) + 16 .如果真 (xlength < tmp) 重定义数组 (x, 真, tmp) .如果真结束 x [右移 (len, 5) + 1] = 位或 (x [右移 (len, 5) + 1], 左移 (128, 24 - len % 32)) x [左移 (右移 (len + 64, 9), 4) + 16] = len xlength = 取数组成员数 (x) a = 1732584193 b = -271733879 c = -1732584194 d = 271733878 e = -1009589776 .变量循环首 (0, xlength, 16, i) .如果真 (i ≥ xlength) 跳出循环 () .如果真结束 olda = a oldb = b oldc = c oldd = d olde = e .变量循环首 (0, 80, 1, j) .如果真 (j ≥ 80) 跳出循环 () .如果真结束 .如果 (j < 16) w [j + 1] = x [i + j + 1] ' 调试输出 (w [j + 1], j + 1) .否则 w [j + 1] = EC_加密_bit_rol (位异或 (w [j - 3 + 1], w [j - 8 + 1], w [j - 14 + 1], w [j - 16 + 1]), 1) ' 调试输出 (w [j + 1], j + 1) .如果结束 ' w [j + 1] = 0 t = EC_加密_safe_add (EC_加密_safe_add (EC_加密_bit_rol (a, 5), EC_加密_sha1_ft (j, b, c, d)), EC_加密_safe_add (EC_加密_safe_add (e, w [j + 1]), EC_加密_sha1_kt (j))) e = d d = c c = EC_加密_bit_rol (b, 30) b = a a = t .变量循环尾 () a = EC_加密_safe_add (a, olda) b = EC_加密_safe_add (b, oldb) c = EC_加密_safe_add (c, oldc) d = EC_加密_safe_add (d, oldd) e = EC_加密_safe_add (e, olde) .变量循环尾 () 重定义数组 (return, 假, 5) return [1] = a return [2] = b return [3] = c return [4] = d return [5] = e .子程序 EC_加密_binb2rstr, 字节集, 公开 .参数 input, 整数型, 数组 .局部变量 output, 字节集 .局部变量 length, 整数型 .局部变量 i, 整数型 length = 取数组成员数 (input) × 32 .变量循环首 (0, length, 8, i) .如果真 (i ≥ length) 跳出循环 () .如果真结束 output = output + 到字节集 (到字节 (位与 (EC_加密_逻辑右移 (input [右移 (i, 5) + 1], 24 - i % 32), 255))) .变量循环尾 () 返回 (output) .子程序 EC_加密_bit_rol, 整数型, 公开 .参数 num, 整数型 .参数 cnt, 整数型 .局部变量 return, 整数型 return = 位或 (左移 (num, cnt), EC_加密_逻辑右移 (num, 32 - cnt)) 返回 (return) .子程序 EC_加密_safe_add, 整数型, 公开 .参数 x, 整数型 .参数 y, 整数型 .局部变量 lsw, 整数型 .局部变量 msw, 整数型 .局部变量 return, 整数型 lsw = 位与 (x, 65535) + 位与 (y, 65535) msw = 右移 (x, 16) + 右移 (y, 16) + 右移 (lsw, 16) return = 位或 (左移 (msw, 16), 位与 (lsw, 65535)) 返回 (return) .子程序 EC_加密_sha1_ft, 整数型, 公开 .参数 t, 整数型 .参数 b, 整数型 .参数 c, 整数型 .参数 d, 整数型 .如果真 (t < 20) 返回 (位或 (位与 (b, c), 位与 (位取反 (b), d))) .如果真结束 .如果真 (t < 40) 返回 (位异或 (b, c, d)) .如果真结束 .如果真 (t < 60) 返回 (位或 (位与 (b, c), 位与 (b, d), 位与 (c, d))) .如果真结束 返回 (位异或 (b, c, d)) .子程序 EC_加密_sha1_kt, 整数型, 公开 .参数 t, 整数型 .判断开始 (t < 20) 返回 (1518500249) .判断 (t < 40) 返回 (1859775393) .判断 (t < 60) 返回 (-1894007588) .默认 返回 (-899497514) .判断结束
@翎朗
- 上一篇: 雷电模拟器微信备份恢复源码
- 下一篇: 易语言伪装虚拟IP例子
猜你喜欢
- 2025-01-03 夸克网盘扫码登录+账号信息查询源码
- 2024-09-13 精易web浏览器采集例子 dd373游戏网
- 2024-09-12 Brotli (br)压缩/解压动态库调用方法,支持进度压缩/解压
- 2024-09-11 QQ空间二维码登录源码
- 2024-04-07 最新NT框架可用QQ群验证
- 2024-03-21 蓝奏云直链解析纯协议源码
- 2024-03-20 基于E2EE的无状态认证JsonWebToken算法、常用Web算法模块
- 2024-03-18 YoLo8本地cpu识别源码
- 2024-03-16 搜索引擎 下拉关键词例子 支持百d\搜狗\必应\搜狗手机版
- 2024-03-15 ZIP解压缩模块源码
你 发表评论:
欢迎- 百度站内搜索
- 关注微信公众号
- 网站分类
-
- 网站公告
- 电子书书籍
- 程序员工具箱
- 编程工具
- 易语言相关
- 网络相关源码
- 图形图像源码
- 系统工具源码
- 易语言模块源码
- 易语言支持库
- 数据库类源码
- 易语言例程
- 易语言游戏开发
- 易语言模块
- 多媒体类源码
- 易语言资源网
- 易语言视频教程
- JS分析教程
- 易语言图文教程
- 易语言常见问题及笔记
- 工具源码
- 易语言版本
- 网络编程
- javascript
- PHP编程
- html
- 正则表达式
- 面试题
- nodejs
- 其它综合
- 脚本专栏
- python
- 按键精灵相关
- 按键精灵图文教程
- 按键精灵视频教程
- 按键精灵Q语言
- 按键精灵安卓版
- golang
- 游戏安全
- 火山相关
- 火山安卓软件
- 火山常见问题及笔记
- 火山安卓源码
- 火山视频教程
- 火山PC版本下载
- 火山PC视窗例程
- 互联网那些事
- 引流推广
- 项目揭秘
- 网络营销
- 营销软件
- QQ营销软件
- 娱乐软件
- 机器人插件
- 培训教程
- 技术教程
- 活动线报
- 数据库
- Redis
- Access
- MongoDB
- Mysql
- 问答
- 其它
- 易语言
- 需求
- 在线教程
- 多线程培训班
- 觅风易语言教程
- 模拟系列教程
- 集中营易语言教程
- 历史数据
- 随机tag
本文暂时没有评论,来添加一个吧(●'◡'●)