gpt4 book ai didi

encryption - 指定的 key 不是此加密的有效 key : Key size is not valid. 得到的 key 长度为:15

转载 作者:行者123 更新时间:2023-12-04 07:27:56 27 4
gpt4 key购买 nike

尝试通过带有 encodeforURL() 的 url 发送 key 时,我不断收到错误消息和 decodefromUrl() .代码示例如下。
这是我的入口页面:

key = generateSecretKey(("AES"),128);
data = encrypt(serializeJSON(pg_info), key, "AES", "HEX");
location("home.cfm?str=#encodeForURL(key)#&dt=#data#", "false", "301");
这是我的主页:
if ( structKeyExists(url, "str") ) {
key = DecodeFromURL(url.str);
strData = deserializeJSON(decrypt(url.dt, key, "AES", "HEX")); // This is the line where the error message is pointing
} else {
writeOutput("<p>Error! Please contact your administrator.</p>");
abort;
}
代码非常简单。当用户到达入口页面时,数据参数被加密并通过 url 发送到主页。一旦用户进入主页,数据就会从 ul 中提取出来。我尝试在创建 key (128) 时添加大小,希望问题得到解决。错误仍在发生,似乎可能与其他事情有关。我虽然 key 长度是问题所在,但错误消息指向将 url 字符串应用于 deserializeJSON() 的代码行.有没有办法找出导致错误的原因以及如何解决此问题?谢谢你。

最佳答案

顺便说一句,我认为此代码仅用于测试目的,因为 将加密 key 与加密文本一起传递完全完全违背了加密的目的;-)

Is there a way to find out what is causing an error


随着故障排除, location()往往会碍手碍脚,所以最好暂时用超链接替换它。然后,您将能够输出生成的原始 key 并将其与主页上实际收到的 key 进行比较。
测试用例(单页)
<cfscript>
// It make take a few executions to hit a failing key like `n+Py4flPF6uOwNXwpq2J4g==`.
pg_info = { "plain" : "text" };
key = "generateSecretKey(("AES"),128);
data = encrypt(serializeJSON(pg_info), key, "AES", "HEX");

writeOutput( "[key] "& key &"<br>[encoded] "& encodeForURL(key) &"<br><br>");
writeOutput( '<a href="#CGI.SCRIPT_NAME#?str=#encodeForURL(key)#&dt=#data#">Test</a>' );


if ( url.keyExists("str")) {

writeDump( var=[url.str], label="url.str (Original)" );
writeDump( var=[DecodeFromURL(url.str)], label="url.str (Decoded)" );

key = DecodeFromURL(url.str);
strData = deserializeJSON(decrypt(url.dt, key, "AES", "HEX"));
writeDump( var=strData, label="strData" );
}

</cfscript>

how to fix this issue?


CF 已经自动解码 url 参数。所以解码 url.str第二次更改原始 key 值,导致decrypt() 失败,因为 key 不再有效。注意像 n+Py4flPF6uOwNXwpq2J4g== 这样的失败键原版 url.str值与解码后的 key 不同?
  • url.str(原始) n+Py4flPF6uOwNXwpq2J4g== (有“+”字符)
  • key (已解码) n Py4flPF6uOwNXwpq2J4g== (“+”更改为空格字符)
  • 关于encryption - 指定的 key 不是此加密的有效 key : Key size is not valid. 得到的 key 长度为:15,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68122512/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com