VFP调用WIN32API 实现BASE64加密

文章提供了一段代码用于测试VFP中的STRCONV13函数与Base64加密方法的性能对比。通过CryptBinaryToString和CryptStringToBinary函数进行Base64编码和解码,展示了在VFP中进行加密操作的方法。
摘要由CSDN通过智能技术生成

d1a7ced19d9d371d980ab8b29fb532b8.gif

大家可以测试一下与VFP的STRCONV 13谁快谁慢。代码如下:

#DEFINE CRYPT_STRING_BASE64 0x0001
#DEFINE CRYPT_STRING_NOCRLF 0x40000000
#DEFINE CRYPT_STRING_NOCR 0x80000000


DO declare
SET MEMOWIDTH TO 120


LOCAL cBuffer, cEncoded, cDecoded


TEXT TO cBuffer NOSHOW
Base cryptographic functions provide the most flexible means
of developing cryptography applications. All communication
with a cryptographic service provider (CSP) occurs through
these functions.


A CSP is an independent module that performs all cryptographic
operations. At least one CSP is required with each application
that uses cryptographic functions. A single application can
occasionally use more than one CSP.
ENDTEXT


cEncoded = ToBase64(m.cBuffer)
? cEncoded


cDecoded = FromBase64(cEncoded)
? cDecoded


* end of main


FUNCTION ToBase64(cSrc)
  LOCAL nFlags, nBufsize, cDst
  nFlags=CRYPT_STRING_BASE64


  nBufsize=0
  = CryptBinaryToString(@cSrc, LEN(cSrc),;
    m.nFlags, NULL, @nBufsize)


  cDst = REPLICATE(CHR(0), m.nBufsize)
  IF CryptBinaryToString(@cSrc, LEN(cSrc), m.nFlags,;
    @cDst, @nBufsize) = 0
    RETURN ""
  ENDIF
RETURN cDst


FUNCTION FromBase64(cSrc)
  LOCAL nFlags, nBufsize, cDst
  nFlags=CRYPT_STRING_BASE64


  nBufsize=0
  = CryptStringToBinary(@cSrc, LEN(m.cSrc),;
    nFlags, NULL, @nBufsize, 0,0)


  cDst = REPLICATE(CHR(0), m.nBufsize)
  IF CryptStringToBinary(@cSrc, LEN(m.cSrc),;
    nFlags, @cDst, @nBufsize, 0,0) = 0
    RETURN ""
  ENDIF
RETURN m.cDst


PROCEDURE declare
  DECLARE INTEGER CryptBinaryToString IN Crypt32;
    STRING @pbBinary, LONG cbBinary, LONG dwFlags,;
    STRING @pszString, LONG @pcchString


  DECLARE INTEGER CryptStringToBinary IN crypt32;
    STRING @pszString, LONG cchString, LONG dwFlags,;
    STRING @pbBinary, LONG @pcbBinary,;
    LONG pdwSkip, LONG pdwFlags

猫猫的心里话

加菲猫的VFP|狐友会社群接收投稿啦

加菲猫的VFP,用VFP不局限VFP,用VFP混合一切。无论是VFP,还是JS,还是C,只要能混合起来,都可以发表。

商业模式,销售技巧、需求规划、产品设计的知识通通可以发表。

暂定千字50元红包,,优秀的文章红包更大,一经发表,红包到手。

如何帮助使用VFP的人?

用VFP的人,有专业的,有非专业了,很多人其实是小白,问出的问题是小白,如果问题不对,我们引导他们问正确的问题。无论如何请不要嘲笑他们说帮助都不看,这么简单的问题都不会,嘲笑别人不行,而无法提出建设性答案,是很low的。

我们无论工作需要,还是有自己的软件,都是是需要真正的知识,如何让更多人学习真正的VFP知识呢,只需要点赞,在看,能转发朋友圈就更好了。

加菲猫的vfp倡导用"VFP极简混合开发,少写代码、快速出活,用VFP,但不局限于VFP,各种语言混合开发"

我已经带领一百多名会员成功掌到VFP的黑科技,进入了移动互联网时代,接下来我们要进入物联网领域。

2023年狐友会社群会员继续招募中

社群会员获取的权益有:

祺佑三层开发框架商业版(猫框),终身免费升级,终身技术支持。

开放的录播课程有:

微信小程序,微信公众号开发,H5 APP开发,Extjs BS开发,VFP面向对象进阶,VFP中间层开发。

源码类资源有:

支付组件源码,短信源码,权限组件源码,一些完整系统的源码。这个可以单独出售的,需要的可以联系我。

会员也可以实现群内资源对接,可以接分包,合作等各项商业或技术业务

190444b49cf6cbb8251da6a30d4d5c11.gif

41cc018828dbd7bdbd048fe4eedede87.jpeg

0587a6779836ed476633a52358b14fb1.gif

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
VFP(Visual FoxPro)是一种基于对象的编程语言,常用于Windows平台上的数据库应用程序开发。要调用钉钉API接口,可以按照以下步骤进行: 1. 首先,需要在钉钉开放平台上创建一个企业应用,获取到应用的CorpID和CorpSecret。这些凭证将用于在API调用中进行身份验证。 2. 在VFP中,可以使用URLMON库来发送HTTP请求。使用URLMON库的URLDownloadToFile函数可以下载API返回的数据到本地文件。同时,还可以使用API相关的地址和参数构建需要调用的URL。 3. 在VFP中,可以使用ADO(ActiveX Data Objects)来处理HTTP请求的返回值。通过创建一个ADODB.Stream对象,可以读取下载的API返回的数据,并进行进一步的操作和处理。 4. 在进行API调用时,需要对请求进行签名验证,以确保请求的合法性和安全性。可以使用HMAC-SHA256算法对请求参数进行签名,将签名结果添加到URL中的请求参数中,以验证请求的有效性。 5. 在VFP中,可以使用API的请求参数的JSON格式来进行请求。可以使用VFP的JSON类库或者其他JSON解析器来处理JSON格式的请求参数和返回值。 在调用钉钉API接口时,需要仔细阅读钉钉开放平台的API文档,了解每个接口的具体使用方法和请求参数,以确保API调用的成功和准确性。完成以上步骤后,即可在VFP调用钉钉API接口,实现与钉钉的数据交互和业务操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值