将密码转化为SAP的格式
生活随笔
收集整理的這篇文章主要介紹了
将密码转化为SAP的格式
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
REPORT?ZTEST3
.
DATA? :?SOURCE?????? TYPE??CHAR255 ,
???????SOURCELEN??? TYPE?? I ,
??????? KEY????????? TYPE?? I? VALUE? 26101957 ,
???????DESTINATION? TYPE??CHAR255 .
SOURCE? =? 'MScm81@11$' .
"?將密碼轉化為SAP的格式
CALL? FUNCTION? 'HTTP_SCRAMBLE'
?? EXPORTING
????SOURCE?????? =?SOURCE
????SOURCELEN??? =? STRLEN (?SOURCE? )
???? KEY????????? =? KEY
?? IMPORTING
????DESTINATION? =?DESTINATION .
IF?SY -SUBRC? =? 0? .
?? WRITE? :?DESTINATION .
ENDIF .
*function?http_scramble.
**"----------------------------------------------------------------------
**"*"Lokale?Schnittstelle:
**"??IMPORTING
**"?????REFERENCE(SOURCE)?TYPE??C
**"?????REFERENCE(SOURCELEN)?TYPE??I
**"?????REFERENCE(KEY)?TYPE??I
**"??EXPORTING
**"?????REFERENCE(DESTINATION)?TYPE??C
**"----------------------------------------------------------------------
*
*??data:?conv?type?ref?to?cl_abap_conv_out_ce,
*????????buffer?type?xstring,
*????????x4(4)?type?x,
*????????y4(4)?type?x,
*????????x?type?x,
*????????i?type?i,
*????????mask(4)?type?x?value?'0000003F',
*????????dest(255)?type?x,
*????????lf?type?f.
*
*??data:?stab(64)?type?x?value
*???????'F0ED53B83244F1F876C67959FD4F13A2'?&
*???????'C15195EC5483C234774943A27DE26596'?&
*???????'5E5398789A17A33CD383A8B829FBDCA5'?&
*???????'55D702778413ACDDF9B83116610E6DFA'.
*
*??if?sourcelen?eq?0.?exit.?endif.
*
*??y4?=?key.
*??x4?=?key?*?2.
*??y4?=?y4?bit-xor?x4.
*??x4?=?key?/?32.
*??y4?=?y4?bit-xor?x4.
*??y4?=?y4?bit-and?mask.
*
*??conv?=?cl_abap_conv_out_ce=>create(?encoding?=?'UTF-8'?).
*??call?method?conv->write(?data?=?source?).
*??buffer?=?conv->get_buffer(?).
*
*??i?=?0.
*??do?sourcelen?times.
*????if?sy-index?eq?40.
*??????x4?=?1.
*????endif.
*????lf?=?(?key?*?i?*?i?-?i?)?mod?256.
*????x?=?lf.
*????x?=?stab+y4(1)?bit-xor?x.
*????dest+i?=?buffer+i(1)?bit-xor?x.
*????i?=?i?+?1.
*????y4?=?y4?+?1.
*????y4?=?y4?bit-and?mask.
*??enddo.
*
*??write?dest(sourcelen)?to?destination.
*
*endfunction.
DATA? :?SOURCE?????? TYPE??CHAR255 ,
???????SOURCELEN??? TYPE?? I ,
??????? KEY????????? TYPE?? I? VALUE? 26101957 ,
???????DESTINATION? TYPE??CHAR255 .
SOURCE? =? 'MScm81@11$' .
"?將密碼轉化為SAP的格式
CALL? FUNCTION? 'HTTP_SCRAMBLE'
?? EXPORTING
????SOURCE?????? =?SOURCE
????SOURCELEN??? =? STRLEN (?SOURCE? )
???? KEY????????? =? KEY
?? IMPORTING
????DESTINATION? =?DESTINATION .
IF?SY -SUBRC? =? 0? .
?? WRITE? :?DESTINATION .
ENDIF .
*function?http_scramble.
**"----------------------------------------------------------------------
**"*"Lokale?Schnittstelle:
**"??IMPORTING
**"?????REFERENCE(SOURCE)?TYPE??C
**"?????REFERENCE(SOURCELEN)?TYPE??I
**"?????REFERENCE(KEY)?TYPE??I
**"??EXPORTING
**"?????REFERENCE(DESTINATION)?TYPE??C
**"----------------------------------------------------------------------
*
*??data:?conv?type?ref?to?cl_abap_conv_out_ce,
*????????buffer?type?xstring,
*????????x4(4)?type?x,
*????????y4(4)?type?x,
*????????x?type?x,
*????????i?type?i,
*????????mask(4)?type?x?value?'0000003F',
*????????dest(255)?type?x,
*????????lf?type?f.
*
*??data:?stab(64)?type?x?value
*???????'F0ED53B83244F1F876C67959FD4F13A2'?&
*???????'C15195EC5483C234774943A27DE26596'?&
*???????'5E5398789A17A33CD383A8B829FBDCA5'?&
*???????'55D702778413ACDDF9B83116610E6DFA'.
*
*??if?sourcelen?eq?0.?exit.?endif.
*
*??y4?=?key.
*??x4?=?key?*?2.
*??y4?=?y4?bit-xor?x4.
*??x4?=?key?/?32.
*??y4?=?y4?bit-xor?x4.
*??y4?=?y4?bit-and?mask.
*
*??conv?=?cl_abap_conv_out_ce=>create(?encoding?=?'UTF-8'?).
*??call?method?conv->write(?data?=?source?).
*??buffer?=?conv->get_buffer(?).
*
*??i?=?0.
*??do?sourcelen?times.
*????if?sy-index?eq?40.
*??????x4?=?1.
*????endif.
*????lf?=?(?key?*?i?*?i?-?i?)?mod?256.
*????x?=?lf.
*????x?=?stab+y4(1)?bit-xor?x.
*????dest+i?=?buffer+i(1)?bit-xor?x.
*????i?=?i?+?1.
*????y4?=?y4?+?1.
*????y4?=?y4?bit-and?mask.
*??enddo.
*
*??write?dest(sourcelen)?to?destination.
*
*endfunction.
總結
以上是生活随笔為你收集整理的将密码转化为SAP的格式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 怎么将SAP数据传输到其他系统(Tran
- 下一篇: ABAP X类型 和 xstring类型