FAQ > 金融建模 > 建模问题 > 平台使用

Q:批量导入导出时对函数进行批量加密解密处理    

简述
天软客户端中,对于函数的加密解密是针对单个函数的操作,要实现批量加密解密,还需借助批量导入导出的功能
  • A:客户端升级至2023-04-08日版本:批量导入导出函数支持进行加密解密操作。
    本章节中对各种选择后导入导出的的函数状态表现进行了展示,用户可以根据自己的需求进行选择与对比。

    其功能与操作说明如下:
    要点说明:
    加密与解密需要在客户端中上传秘钥时才可进行,同样的,在导入导出中,只有上传了密钥才能进行加密与解密的操作。
    客户端上传了秘钥:
    客户端中上传了秘钥时,用户可以通过导入导出操作对用户函数进行批量加密解密。
    在导入导出窗口中,有以下四个选项,其功能分别为:
    【数据最大位数】:导入导出时不做任何额外的加密解密处理,保持源函数在导入导出前的状态。
    【编译保留加密源码】:导入导出前对函数进行加密操作,且保留源代码(即加密后可通过解密找回源代码)。
    【编译不保留源码】:导入导出前对函数进行加密操作,且不保留源代码(即加密后不能通过解密找回源代码)。
      pS:不保留源码这种方式不可逆,请用户慎重选择。
    【解密已加密的函数】:导入导出前对已加密的函数进行解密处理。
    ----------------------------------------------------------
    批量加密操作提示(二选一即可):
    方式一:用户在批量导出时选择【编译保留加密源码】,然后将该.tslfunc函数包进行批量导入(选择默认方式【数据最大位数】)覆盖。
    方式二:普通方式(选择默认方式【数据最大位数】)导出,然后在批量导入时选择【编译保留加密源码】后覆盖原函数。

    批量解密操作提示(二选一即可):
    方式一:用户在量导出时选择【解密已加密的函数】,然后将该.tslfunc函数包进行批量导入(选择默认方式【数据最大位数】)覆盖。
    方式二:普通方式(选择默认方式【数据最大位数】)导出,然后在批量导入时选择【解密已加密的函数】后覆盖原函数。
    ----------------------------------------------------------
    没有上传秘钥时导入导出的状态:
     若客户端中没有上传秘钥,则不管是导入还是导出,都无法进行任何加密解密的选择,只能做函数普通的导入导出操作。选项框内的选择项状态如下:

    ----------------------------------------------------------
    具体操作说明:
    批量导出
    当客户端中已经上传了秘钥,可在导出时对函数进行批量加密解密操作。
    下面我们对以下的五个函数进行导出操作:


    1、选择“数据最大位数”:导出后维持源包中函数是否加密的状态。
    导出后包中各函数的状态如下(在批时导入选择时的状态):


    2、选择“编译保留加密源码”:将选中的函数中没有加密的函数进行加密后导出,即完成批量加密的。
    导出后包中各函数的状态如下(在批时导入选择时的状态):


    3、选择“编译不保留源码”:将选中的函数中所有函数的函数体代码进行隐藏。
    导出后包中各函数的状态如下(在批时导入选择时的状态):


    4、选择“解密已加密的函数”:将选中的函数中已加密的函数进行解密后导出,所有函数都变为不加密的函数,此功能可以实现批量解密导出的操作。
    导出后包中各函数的状态如下(在批时导入选择时的状态):


    批量导入
    客户端中导入了开发者秘钥证书,且与被导入的函数包中秘钥是同一套时,可以对加密的函数包进行批量解密操作。
    下面我们对函数包“存在个别加密的.tslfunc”进行批量导入操作,该包内容如下:


    1、选择“数据最大位数”:导入后维持源包中函数是否加密的状态。
    导入后函数在资源管理器中状态如下:


    2、选择“编译保留加密源码”:将源包中没有加密的函数进行加密后导入,即完成批量加密的操作。
    导入后函数在资源管理器中状态如下:


    3、选择“编译不保留源码”:将源包中所有函数的函数体代码进行隐藏,即为加密且不可解密的状态。
    导入后函数在资源管理器中状态如下:

    所有函数的函数体显示如下:


    4、选择“解密已加密的函数”:将源包中已加密的函数进行解密后导入,所有函数都变为不加密的函数,此功能可以实现批量解密的操作。
    导入后函数在资源管理器中状态如下:

    ----------------------------------------------------------
    导入时的几个特别场景的解读说明:
    情景一: 源包是“编译保留加密源码”的函数包,导入时选择:
    1、“编译保留加密源码”:导入后所有函数都是加密且保留了源码的函数。
    2、“编译不保留源码”:导入后所有函数的函数体代码找不回,都是加密且不可解密的状态(有秘钥也找不回)。

    3、“解密已加密的函数”:导入后所有函数都是不加密的状态。

    情景二: 源包是“编译不保留源码”的函数包,导入时选择:
    1、“编译保留加密源码”:导入后无函数源码且找不回,若公钥存在,还是可以进行运行。
    2、“编译不保留源码”:导入后无函数源码且找不回,若公钥存在,还是可以进行运行。
    3、“解密已加密的函数”:导入后无函数源码且找不回,若公钥存在,还是可以进行运行。