递归火山软件开发平台

标题: 火山视窗RSA加密,调试失败 [打印本页]

作者: dnmxm    时间: 4 小时前
标题: 火山视窗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    时间: 3 小时前
RSA公钥有些不兼容,改一下就好。

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

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

作者: dnmxm    时间: 2 小时前
Xelloss0618 发表于 2026-6-2 16:57
RSA公钥有些不兼容,改一下就好。

怎么改呀
作者: 创世魂    时间: 1 小时前
dnmxm 发表于 2026-6-2 17:55
怎么改呀

-----BEGIN RSA PUBLIC KEY----- 这个头尾信息删掉试试??注意不要有换行。仔细排查一下。
作者: Xelloss0618    时间: 半小时前
dnmxm 发表于 2026-6-2 17:55
怎么改呀

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




欢迎光临 递归火山软件开发平台 (https://bbs.voldp.com/) Powered by Discuz! X3.4