首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何以与Genexus相同的方式加密面板参数?

如何以与Genexus相同的方式加密面板参数?
EN

Stack Overflow用户
提问于 2022-10-20 13:29:13
回答 1查看 69关注 0票数 1

我们需要对字符串进行加密,就像Genexus (17U10和csharp,如果重要的话)使用站点密钥加密面板的参数一样。

为了更好地理解,第一个是带有未加密参数的url,第二个是带有通过站点密钥加密的参数的url。

http://localhost/TestVersione17U10.NETFrameworkEnvironment/webpanel3.aspx?par1=hello

http://localhost/TestVersione17U10.NETFrameworkEnvironment/webpanel3.aspx?ROndRLvw5t80mViNc0wdKO7XYc-OgWL61k9lDimrqI0

在wiki中阅读时,我相信genexus使用了存储在application.key文件中的密钥,并使用了双重算法。

7E2E22D26F2989E2444852A85E57867

这是我在文件中的关键,我用各种方法尝试从第一个字符串开始获得第二个字符串,但没有成功。

本机Encrypt64方法没有给出结果,生成的字符串是不同的。

我还注意到,当我调用另一个面板时,相同的参数被不同的加密,所以我相信它也以某种方式使用面板名称。( webpanel2.aspx?mY8XtkZ-3eBJKsDIFk-zX3DP2PuQC2LHIkqwFtE1CZw )

我做错了什么?钥匙出问题了吗?除了Encrypt64,您还使用其他方式加密吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-10-21 18:31:48

我不知道你到底想实现什么。我是说,你想要存储这个链接吗?您需要它才能从“非GX应用程序”调用吗?

无论如何,正如您所说的,对象名包含在URL加密算法中。该算法不能作为GX开发人员直接使用的“函数”。然而,在Genexus中有两种类似的方法:

  1. 使用“链接”函数。https://wiki.genexus.com/commwiki/servlet/wiki?8444,Link%20Function

  1. 使用非标准函数。假设您有“webpanel3.aspx 3.aspx par1=hello,par2=world”,那么代码可能如下所示:

&GXKey = GetSiteKey()

&GXEncryptionTmp =“webpanel3.aspx 3.aspx”+UrlEncode(“hello”)+“+ UrlEncode("world")

&EncryptedParms= "?“+ UriEncrypt64( &GXEncryptionTmp + CheckSum(&GXEncryptionTmp,6),&GXKey)

注意:您必须启用“非标准函数”(https://wiki.genexus.com/commwiki/servlet/wiki?8013,Standard%20Functions%20property%20at%20Object%20level)

如果需要从非GX应用程序调用,可以使用to选项:

  1. 使用GX生成的程序作为“代理”。此对象接收未加密的parms并返回加密的URL或直接加密参数并调用相应的对象

  1. 将探索生成的对象,以便在解决方案/代码中模仿该代码。这包括探索https://github.com/genexuslabs/DotNetClasses)

(即GXClassses )

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74140717

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档