ABAP 密码生成工具开发指南

背景需求
  在SAP系统日常运维中,频繁修改密码已成为困扰大家的痛点。传统人工设置密码存在以下问题:密码复杂度不足、重复使用风险等。本文将指导您基于 ABAP 语言开发自动化密码生成管理工具。

技术实现方案

1、核心密码生成模块

使用函数“RSEC_GENERATE_PASSWORD”,基于提供的密码种子,生成需要格式的密码

  METHOD generate_password.
   
       DATA: lv_alphabet TYPE text255,
             lv_password TYPE text255.
   
       " pwd

       IF iv_uppercase = abap_true.
         lv_alphabet = |{ lv_alphabet }{ mc_uppercase_letters }|.
       ENDIF.
   
       IF iv_lowercase = abap_true.
         lv_alphabet = |{ lv_alphabet }{ mc_lowercase_letters }|.
       ENDIF.
   
       IF iv_number = abap_true.
         lv_alphabet = |{ lv_alphabet }{ mc_numbers }|.
       ENDIF.
   
       IF iv_symbol = abap_true.
         lv_alphabet = |{ lv_alphabet }{ mc_symbols }|.
       ENDIF.
   
       CALL FUNCTION 'RSEC_GENERATE_PASSWORD'
         EXPORTING
           alphabet      = lv_alphabet
           output_length = iv_length
         IMPORTING
           output        = lv_password
         EXCEPTIONS
           some_error    = 1
           OTHERS        = 2.
       IF sy-subrc <> 0.
         MESSAGE e001(00) WITH '
生成密码出错'.
       ENDIF.
   
       " judge
       IF iv_uppercase = abap_true AND lv_password NA mc_uppercase_letters.
         RETURN.
       ENDIF.
   
       IF iv_lowercase = abap_true AND lv_password NA mc_lowercase_letters.
         RETURN.
       ENDIF.
   
       IF iv_number = abap_true AND lv_password NA mc_numbers.
         RETURN.
       ENDIF.
   
       IF iv_symbol = abap_true AND lv_password NA mc_symbols.
         RETURN.
       ENDIF.
   
       rv_password = lv_password.
   
     ENDMETHOD.

算法特点:

a. 四重字符集随机选择机制,可以指定大写、小写、数字和符号随机组合;

b. 通过随机生成的密码,再修改KeePass中对应条目密码,解除了大家修改密码时受制于规则(事务代码:SECPOL)和记密码的烦恼

2.安全实践建议

密码策略强化: 强制8位以上混合字符;

        启用密码历史检查;

        设置90天强制更换周期。

3.用户界面设计

DATA: lv_tabix TYPE i.
   
   PARAMETERS: p_length TYPE i DEFAULT '8'.
   
   PARAMETERS: p_upper  AS CHECKBOX DEFAULT 'X',
               p_lower  AS CHECKBOX DEFAULT 'X',
               p_number AS CHECKBOX DEFAULT 'X',
               p_symbol AS CHECKBOX DEFAULT 'X'.
   
   START-OF-SELECTION.
   
     DO.
       DATA(lv_pwd) = zcl_tools_management=>generate_password( iv_length    = p_length
                                                               iv_uppercase = p_upper
                                                               iv_lowercase = p_lower
                                                               iv_number    = p_number
                                                               iv_symbol    = p_symbol ).
   
       IF lv_pwd IS NOT INITIAL.
         lv_tabix += 1.
   
         WRITE: / lv_pwd.
       ENDIF.
   
       IF lv_tabix = 5.
         EXIT.
       ENDIF.
     ENDDO.

  以上每次执行随机生成5组密码供选择,不仅能有效解决修改密码时起密码的纠结和烦恼,还能提升我们办公时的情绪价值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值