递归火山软件开发平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 火山 源码 类库
查看: 4330|回复: 11
打印 上一主题 下一主题

[视窗] 求助易语言中的取数据摘要,在火山PC中怎么替换

[复制链接]

6

主题

12

帖子

94

积分

注册会员

Rank: 2

积分
94
跳转到指定楼层
楼主
发表于 2023-11-1 03:55:52 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式
.版本 2
.支持库 dp1

.子程序 效验卡密2, 逻辑型
.参数 卡密, 文本型
.局部变量 前4, 文本型
.局部变量 MD5, 文本型
.局部变量 去前缀, 文本型

去前缀 = 取文本右边 (卡密, 30)

前4 = 取文本左边 (去前缀, 5)
MD5 = 到大写 (取数据摘要 (到字节集 (前4)))
.判断开始 (寻找文本 (去前缀, 取文本右边 (MD5, 5), , 假) ≠ -1)
    返回 (真)
.默认

.判断结束
返回 (假)


上面易语言代码中的取数据摘要,请问在火山PC中要怎么写!或者替换成对应的方法


谢谢!

回复

使用道具 举报

6

主题

12

帖子

94

积分

注册会员

Rank: 2

积分
94
12#
 楼主| 发表于 2023-11-16 17:11:05 | 只看该作者
创世魂 发表于 2023-11-1 21:50
如果是文本要注意编码问题。。   想要和易语言一样,火山里面需要使用  文本到多字节("111",假) ...

可以了,谢谢您!
回复

使用道具 举报

3

主题

86

帖子

1214

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
1214
11#
发表于 2023-11-3 12:11:25 | 只看该作者
  1. <火山程序 类型 = "通常" 版本 = 1 />

  2. 方法 取数据md5 <公开 类型 = 文本型 注释 = "bcrypt.h cng库方法" 折叠2 @视窗.外部头文件 = "bcrypt.h" @视窗.外部库 = "Bcrypt.lib"
  3.         @禁止流程检查 = 真>
  4. 参数 数据 <类型 = 字节集类 注释 = "提供所欲计算摘要的数据.">
  5. 参数 是否大写 <类型 = 逻辑型 注释 = "真为大写,假为小写,默认小写" @默认值 = 假>
  6. 参数 是否32位 <类型 = 逻辑型 注释 = "真为32位,假为16位,默认32位" @默认值 = 真>
  7. {

  8.     // 初始化 CNG 提供程序
  9.     @ BCRYPT_ALG_HANDLE phAlgorithm;
  10.     @ if (BCryptOpenAlgorithmProvider (&phAlgorithm,BCRYPT_MD5_ALGORITHM, NULL, 0)){return "";}
  11.     // 创建哈希
  12.     @ BCRYPT_HASH_HANDLE phHash;
  13.     @ if (BCryptCreateHash (phAlgorithm, &phHash, NULL, NULL, NULL, 0, 0)){BCryptCloseAlgorithmProvider (phAlgorithm, 0);return "";}
  14.     // 执行单向哈希
  15.     @ if (BCryptHashData (phHash, (PUCHAR)@<数据>.GetPtr (), (ULONG)@<数据>.GetSize (), 0)){BCryptDestroyHash (phHash);BCryptCloseAlgorithmProvider (phAlgorithm, 0);return "";}
  16.     // 函数检索属性的值
  17.     @ DWORD dwHashDigLen, dwPropertySize;
  18.     @ if (BCryptGetProperty (phAlgorithm, BCRYPT_HASH_LENGTH, (PUCHAR)&dwHashDigLen, 4, &dwPropertySize, 0)){BCryptDestroyHash (phHash);BCryptCloseAlgorithmProvider (phAlgorithm, 0);return "";}
  19.     // 提取哈希数据
  20.     @ CVolMem HashData;
  21.     @ HashData.Alloc ((INT)dwHashDigLen, TRUE);
  22.     @ BCryptFinishHash (phHash, (PUCHAR)HashData.GetPtr (), (ULONG)HashData.GetSize (), 0);
  23.     // 释放哈希对象
  24.     @ BCryptDestroyHash (phHash);//释放哈希对象
  25.     @ BCryptCloseAlgorithmProvider (phAlgorithm, 0);//关闭算法程序

  26.     @ CWString Data=HashData.ToHexStr (CVolString ());//字节集到十六进制文本
  27.     @ if(!@<是否大写>){Data=Data.MakeLower ();}//大小写转换
  28.     @ if(!@<是否32位>){Data=Data.Middle (8,16);}
  29.     @ return Data;


  30. }
复制代码


回复

使用道具 举报

444

主题

1万

帖子

4万

积分

超级版主

Rank: 8Rank: 8

积分
40529
10#
发表于 2023-11-1 21:50:30 | 只看该作者
本帖最后由 创世魂 于 2023-11-1 21:59 编辑
yzy533544 发表于 2023-11-1 13:23
取出来的数据和易语言的不一样,不知道是什么地方的错误呢

如果是文本要注意编码问题。。   想要和易语言一样,火山里面需要使用  文本到多字节("111",假)
安卓无障碍实战课:点击查看
交流群:641526939
回复

使用道具 举报

28

主题

359

帖子

3325

积分

论坛元老

Rank: 8Rank: 8

积分
3325
9#
发表于 2023-11-1 16:58:03 | 只看该作者
本帖最后由 b0y 于 2023-11-1 17:03 编辑
yzy533544 发表于 2023-11-1 13:24
取出来的数据和易语言的不一样,不知道是什么地方的错误呢

md5一般都是转换为utf8 在加密的  




回复

使用道具 举报

26

主题

1900

帖子

6926

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
6926
8#
发表于 2023-11-1 13:46:34 | 只看该作者
yzy533544 发表于 2023-11-1 13:24
取出来的数据和易语言的不一样,不知道是什么地方的错误呢

文本编码不一样啊,火山的文本型是UTF-16编码,你要用 文本到多字节 ("", 假)  转换到 ANSI,才能跟易语言一样
回复

使用道具 举报

6

主题

12

帖子

94

积分

注册会员

Rank: 2

积分
94
7#
 楼主| 发表于 2023-11-1 13:24:59 | 只看该作者
b0y 发表于 2023-11-1 06:34
加解密类.取数据MD5 ()

引用openssl模块

取出来的数据和易语言的不一样,不知道是什么地方的错误呢
回复

使用道具 举报

6

主题

12

帖子

94

积分

注册会员

Rank: 2

积分
94
6#
 楼主| 发表于 2023-11-1 13:23:08 | 只看该作者
创世魂 发表于 2023-11-1 07:29
加解密类.取数据MD5 ()  

取数据摘要也有。在数据操作支持2里面,

取出来的数据和易语言的不一样,不知道是什么地方的错误呢
回复

使用道具 举报

28

主题

359

帖子

3325

积分

论坛元老

Rank: 8Rank: 8

积分
3325
5#
发表于 2023-11-1 07:56:48 | 只看该作者
创世魂 发表于 2023-11-1 07:29
加解密类.取数据MD5 ()  

取数据摘要也有。在数据操作支持2里面,

一般还真不好找  视窗基本类里 能不能加上
回复

使用道具 举报

444

主题

1万

帖子

4万

积分

超级版主

Rank: 8Rank: 8

积分
40529
地板
发表于 2023-11-1 07:29:20 | 只看该作者
加解密类.取数据MD5 ()  

取数据摘要也有。在数据操作支持2里面,

安卓无障碍实战课:点击查看
交流群:641526939
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|递归火山软件开发平台 ( 鄂ICP备18029190号 )

GMT+8, 2024-11-24 06:11 , Processed in 0.103836 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表