dnmxm 发表于 2026-6-2 16:23:03

火山视窗RSA加密,调试失败

下面是代码。单击按钮2,被调试程序已经退出,退出码为0xC0000005.
调试已经停止。这是什么原因啊


<火山程序 类型 = "通常" 版本 = 1 />

常量 你的公钥常量 <类型 = 文本型
      值 = "-----BEGIN RSA PUBLIC KEY-----\r\nMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCErGXIgGA283qktOXmf1CXIEPGzRUBxIQJeh0EmppDTrSwh8VjLnNXKEbfstR/ADAEpDunvoEI9lnXAm2ixz/AuxJb5fIHyk55qNr0InxtaJsLPQA8QMXXgyAAzVx4Lpsq0gX0DNVVkm/IdZLEazTOy52bpd5cmIZ15pibRetqjwIDAQAB\r\n-----END RSA PUBLIC KEY-----">

方法 按钮_被单击 <接收事件 类型 = 整数 注释 = "当按钮被单击后发送此事件">
参数 来源对象 <类型 = 按钮 注释 = "提供事件产生的具体来源对象">
参数 标记值 <类型 = 整数 注释 = "用户调用\"挂接事件\"命令时所提供的\"标记值\"参数值,非此方式挂接事件则本参数值固定为0.">
{
    如果 (来源对象 == 按钮2)
    {

      变量 加密后文本 <类型 = 文本型>
      加密后文本 = RSA公钥加密_修正版 ("123456")
      调试输出 ("加密后的密文: ", 加密后文本)


    }

    如果 (来源对象 == 按钮1)
    {

      读取网页 ()
      读取** ()

    }
    返回 (0)

}

<火山程序 类型 = "通常" 版本 = 1 />

方法 RSA公钥加密_修正版 <公开 静态 类型 = 文本型>
参数 待加密文本 <类型 = 文本型>
{

    // 2. 将公钥常量转换为字节集
    变量 公钥字节集 <类型 = 字节集类>
    公钥字节集 = 文本到UTF8 (你的公钥常量)

    // 3. 将待加密文本转换为UTF-8字节集
    变量 待加密数据 <类型 = 字节集类>
    待加密数据 = 文本到UTF8 (待加密文本)

    // 4. 核心加密步骤:调用 OpenSSL 进行公钥加密
    变量 加密结果字节集 <类型 = 字节集类>
    变量 加解密 <类型 = 加解密类>

    加密结果字节集 = 加解密.加密_RSA_公钥 (待加密数据, 公钥字节集)

    // 5. 检查是否加密成功
    如果 (加密结果字节集.取字节集长度 () == 0)
    {
      调试输出 ("错误:RSA加密失败,请检查公钥格式")
      返回 ("")
    }

    // 6. 将加密后的二进制数据转为BASE64文本返回
    返回 (加密结果字节集.字节集到BASE64文本 (BASE64编码方式.标准, -1))
}



Xelloss0618 发表于 2026-6-2 16:57:43

RSA公钥有些不兼容,改一下就好。

<火山程序 类型 = "通常" 版本 = 1 />

常量 你的公钥常量 <类型 = 文本型
      值 = "-----BEGIN PUBLIC KEY-----\r\nMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCErGXIgGA283qktOXmf1CXIEPGzRUBxIQJeh0EmppDTrSwh8VjLnNXKEbfstR/ADAEpDunvoEI9lnXAm2ixz/AuxJb5fIHyk55qNr0InxtaJsLPQA8QMXXgyAAzVx4Lpsq0gX0DNVVkm/IdZLEazTOy52bpd5cmIZ15pibRetqjwIDAQAB\r\n-----END PUBLIC KEY-----">

dnmxm 发表于 2026-6-2 17:55:34

Xelloss0618 发表于 2026-6-2 16:57
RSA公钥有些不兼容,改一下就好。




怎么改呀

创世魂 发表于 2026-6-2 18:49:18

dnmxm 发表于 2026-6-2 17:55
怎么改呀

-----BEGIN RSA PUBLIC KEY----- 这个头尾信息删掉试试??注意不要有换行。仔细排查一下。

Xelloss0618 发表于 2026-6-2 20:09:20

dnmxm 发表于 2026-6-2 17:55
怎么改呀

我不是贴了代码吗?
openssl 不支持 BEGINRSA PUBLIC KEY / END RSA PUBLIC KEY
改成 BEGIN PUBLIC KEY / END PUBLIC KEY 就行了

dnmxm 发表于 2026-6-3 09:52:41

Xelloss0618 发表于 2026-6-2 20:09
我不是贴了代码吗?
openssl 不支持 BEGINRSA PUBLIC KEY / END RSA PUBLIC KEY
改成 BEGIN PUBLIC KEY ...

你说的确实管用。谢谢大哥!

dnmxm 发表于 2026-6-3 09:55:44

创世魂 发表于 2026-6-2 18:49
-----BEGIN RSA PUBLIC KEY----- 这个头尾信息删掉试试??注意不要有换行。仔细排查一下。 ...

这个办法不可行。实测 Xellsoss0618说的可行。openssl 不支持 BEGINRSA PUBLIC KEY / END RSA PUBLIC KEY
改成 BEGIN PUBLIC KEY / END PUBLIC KEY 就行了
页: [1]
查看完整版本: 火山视窗RSA加密,调试失败