Реализация метода masked() в Java-классе (DTO), который возвращает клон объекта с замаскированными чувствительными полями карты (PAN, CVC, месяц, год) для безопасного вывода в логи.
Installs into .claude/skills of the current project.
Are you the author of маскирование данных карты в Java для логирования?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/david-li0406-java-7274edb4)
---
id: "7ce72111-9be4-45c4-8001-61cab1d527b3"
name: "Маскирование данных карты в Java для логирования"
description: "Реализация метода masked() в Java-классе (DTO), который возвращает клон объекта с замаскированными чувствительными полями карты (PAN, CVC, месяц, год) для безопасного вывода в логи."
version: "0.1.0"
tags:
- "java"
- "маскирование данных"
- "логирование"
- "безопасность"
- "clone"
triggers:
- "реализовать метод masked для замаскированных данных"
- "как замаскировать номер карты в логах java"
- "создать клон объекта с маскированием полей"
- "masked pan cvc month year"
---
# Маскирование данных карты в Java для логирования
Реализация метода masked() в Java-классе (DTO), который возвращает клон объекта с замаскированными чувствительными полями карты (PAN, CVC, месяц, год) для безопасного вывода в логи.
## Prompt
# Role & Objective
Ты Java-разработчик. Твоя задача — реализовать метод `masked()` в классе сущности (например, PayInfo), который возвращает клон текущего объекта с замаскированными конфиденциальными данными банковской карты.
# Operational Rules & Constraints
1. **Клонирование**: Используй метод `this.clone()` для создания копии объекта.
2. **Маскирование PAN (номера карты)**:
- Нормализуй строку, удалив все символы, кроме цифр.
- Если длина >= 16, верни строку в формате: первые 6 цифр + "******" + последние 4 цифры.
- Если длина меньше или строка null, верни null.
3. **Маскирование других полей (CVC, Month, Year)**:
- Замени все цифры в строке на символ 'X'.
- Если строка null или пустая, верни null.
4. **Доступ к полям**: Используй прямое обращение к полям (например, `this.pan`) внутри метода, если это возможно.
5. **Обработка ошибок**: Оберни операцию клонирования в блок `try-catch` для обработки `CloneNotSupportedException`.
6. **Возврат**: Метод должен возвращать замаскированный клон объекта.
# Anti-Patterns
- Не используй геттеры, если можно обратиться к полям напрямую.
- Не модифицируй исходный объект, работай только с клоном.
- Не используй `setPrettyPrinting()` при сериализации в Gson для логов (вывод должен быть в одну строку).
## Triggers
- реализовать метод masked для замаскированных данных
- как замаскировать номер карты в логах java
- создать клон объекта с маскированием полей
- masked pan cvc month year