点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)尊敬的SAP社区, 我的目标是...
点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)尊敬的SAP社区, 我的目标是...
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
尊敬的SAP社区,
我的目标是使用给定的密码在一个程序中对字符串进行加密,并将加密后的结果保存在文件中。 在另一个程序中,我将从该文件中读取加密的消息并将其解密。我正在使用CL_SEC_SXML_WRITER => ENRCYPT进行加密,并使用CL_SEC_SXML_WRITER => DECRYPT进行解密(算法:cl_sec_sxml_writer => co_aes256_algorithm)。 加密工作顺利。 尝试解密时,出现异常:CX_SEC_SXML_ENCRYPT_ERROR(UNCAUGHT_EXCEPTION)。
如果我在同一程序中进行加密和解密,则一切正常。 仅当我将加密和解密分为两个程序时,我才会获得异常。
我的加密演示:
报告y_enrypt_txt。
参数:
p_msg类型字符串强制默认'这是我的测试'小写字母,
p_pwd类型字符串强制默认'1234'小写字母,
p_file类型字符串强制小写字母。
开始选择。
*创建消息
DATA(lr_conv_sec)= cl_abap_conv_out_ce => create()。
lr_conv_sec-> write(p_msg)。
*创建密钥
DATA(lr_conv_key)= cl_abap_conv_out_ce =>创建()。
键= lr_conv_key-> get_buffer()
算法= cl_sec_sxml_writer => co_aes256_algorithm
导入
密文= DATA(lv_message))。
OPEN DATASET p_file用于在二进制模式下输出。
将lv_message传输到p_file。
关闭数据集p_file。
我的解密演示
报告y_decrypt_txt。
数据:
lv_enc_msg_xstring TYPE xstring,
lf_plaintext_file TYPE xstring,
lv_decrypted_string TYPE类型
参数:
p_pwd类型字符串强制默认'1234'小写字母,
p_file类型字符串强制默认小写字母。
开始选择。
打开数据集p_file以便以二进制模式输入。
读取数据集p_file到lv_enc_msg_xstring。
关闭数据集p_file。
*创建密钥
DATA(lr_conv_key)= cl_abap_conv_out_ce => create()。
lr_conv_key->写入(p_pwd)。
*使用AES256解密
cl_sec_sxml_writer =>解密(
导出
密文= lv_enc_msg_xstring
密钥= lr_conv_key-> get_buffer()
算法= cl_sec_sxml_writer => co_aes256_algorithm
导入
plaintext = lf_plaintext_file)。
cl_abap_conv_in_ce =>创建(输入= lf_plaintext_file)->读取(导入数据= lv_decrypted_string)。
写:/'已解密:',lv_decrypted_string。
我在做什么错? 为什么可以在同一程序中进行加密和解密? 如果将代码分成两个程序,为什么会出现异常?
最诚挚的问候,
饭能
里卡多,你好
代替CL_SEC_SXML_WRITER => ENCRYPT尝试使用ENCRYPT_IV方法,它具有其他导入参数Initialization Vector。 我将IV参数与初始值一起使用,如下所示,它以这种方式工作。 我希望它也适用于您的情况!
一周热门 更多>