# ПОЛНЫЙ ИНВЕНТАРЬ ЗАШИФРОВАННЫХ ПОЛЕЙ iRely i21

## Что было расшифровано (5 таблиц, 37,727 записей)

| Таблица | Поле | Статус | Записей |
|---------|------|--------|---------|
| tblEMEntityCredential | strPassword | ✅ РАСШИФРОВАНО | 8,658 |
| tblPREmployee | strSocialSecurity | ✅ РАСШИФРОВАНО | 239 |
| tblEMEntityEFTInformation | strAccountNumber | ✅ РАСШИФРОВАНО | 23,624 |
| tblCMBank | strRTN | ✅ РАСШИФРОВАНО | 4,485 |
| tblCMBankAccount | strBankAccountNo, strMICRBankAccountNo, strMICRRoutingNo | ✅ РАСШИФРОВАНО | 721 |

## Что НЕ было расшифровано (пропущено)

### Из исходников (application-level encryption)

| Таблица | Поле | Тип шифрования | Источник |
|---------|------|---------------|----------|
| tblSMCompanyPreference | strSMTPPassword | Security.AesEncrypt | EmailBl.cs |
| tblSMCompanyPreference | strQuotingSystemBatchUserPassword | Security.AesEncrypt | вероятно тот же |
| tblSMCompanyPreference | strMerchantPassword | Security.AesEncrypt | вероятно тот же |
| tblTMPreferenceCompany | strP3Password | Security.AesEncrypt | OptionsBrl.cs, P3AccountLocationBrl.cs |
| tblTMPreferenceCompany | strP3GUID | Security.AesEncrypt | OptionsBrl.cs, P3AccountLocationBrl.cs |
| tblTMPreferenceCompany | strSMTPPassword | Security.AesEncrypt | вероятно тот же |
| IDPSharedTokenBl | azureTargetSas | Security.AesEncrypt | IDPSharedTokenBl.cs |
| IDPSharedTokenBl | azureTargetApiKey | Security.AesEncrypt | IDPSharedTokenBl.cs |

### Из INFORMATION_SCHEMA (database-level encryption)

| Таблица | Поле | Описание |
|---------|------|----------|
| tblEMEntityCredential | strApiKey | API ключи (пустые везде) |
| tblEMEntityCredential | strApiSecret | API секреты (пустые везде) |
| tblEMEntityCredential | strTFASecretKey | TFA секреты (PLAINTEXT - 826 записей!) |
| tblARCompanyPreference | strCreditOverridePassword | Пароль для credit override |
| tblARCompanyPreference | strExpressAccountToken | Express account token |
| tblARCompanyPreference | strMerchantPassword | Merchant пароль |
| tblARSalesperson | strPassword | Пароль salesperson |
| tblAPVendor | strStoreFTPPassword | FTP пароль для store |
| tblEMEntitySMTPInformation | strPassword | SMTP пароль |
| tblFRConnection | strPassword | FR connection пароль |
| tblGRUserPreference | strProviderPassword | Provider пароль |
| tblApiUserAccount | strPasswordHash | Password hash |
| tblApiSchemaEMEntity | strPortalPassword | Portal пароль |
| tblApiSchemaEmployee | strTimeEntryPassword | Time entry пароль |
| tblCRMBrand | strPassword | CRM brand пароль |
| tblCFNetwork | strPassword | CF network пароль |
| tblETCompanyPreference | strFTPPassword | FTP пароль |
| tblEMEntityCardInformation | strToken | Card token |
| tblCTNotification | strToken | Notification token |
| tblCRMCompanyConfig | strHubspotAPIToken | Hubspot API token |
| tblCRMCompanyConfig | strOutlookClientSecret | Outlook client secret |
| tblCRMHubspotConfig | strHsClientSecret | Hubspot client secret |
| tblCRMHubspotConfig | strHsRefreshToken | Hubspot refresh token |
| tblARCustomerLicenseInformation | strLicenseKey | License key |
| tblCFNetwork | strHostKeyFingerPrint | Host key fingerprint |
| tblCFNetwork | strKeyFilePath | Key file path |
| tblCFNetwork | strDecryptKeyFilePath | Decrypt key file path |
| tblEMEntityPasswordHistory | strPassword | История паролей |

## Критичные находки

1. **SMTP пароли** - расшифровано только 2 поля из tblSMCompanyPreference, но есть еще tblEMEntitySMTPInformation.strPassword и другие таблицы с SMTP паролями

2. **API ключи** - strApiKey и strApiSecret пустые везде, но есть другие таблицы с API ключами (tblCRMCompanyConfig.strHubspotAPIToken и т.д.)

3. **FTP пароли** - tblAPVendor.strStoreFTPPassword, tblETCompanyPreference.strFTPPassword

4. **License ключи** - tblARCustomerLicenseInformation.strLicenseKey

5. **TFA секреты** - 826 записей в plaintext (strTFASecretKey)

## Что нужно сделать

1. Создать полный скрипт расшифровки для ВСЕХ полей из INFORMATION_SCHEMA
2. Включить application-level encrypted поля из исходников
3. Расшифровать и сохранить результаты

## Формат выходных данных

CSV файлы: `{db}_{table}_decrypted.csv` с PK + расшифрованные значения

Пример для tblSMCompanyPreference:
```
intCompanyPreferenceId,decrypted_smtp_password,decrypted_merchant_password,decrypted_quoting_password
1,YY=G)o+ueMDGw#H,7.wEHqmXsxq~QEcn,...
```
