背景需求
在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组密码供选择,不仅能有效解决修改密码时起密码的纠结和烦恼,还能提升我们办公时的情绪价值。