Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Создание банковского ключа

Delphi , Синтаксис , Шифрование

Создание банковского ключа


function CheckCtrlKey( aNLs : string; aMfo : real ) : boolean;
const
  {12345678901234567890xxx}
  msk : string[28]= '71371371371371371371713';
var
  i : byte;
  s : integer;
  nls : string[28];
  bic : string[10];
begin
  bic := LeftPad( Real0Str( aMfo, 9, 0 ), 9 );
  if bic[7] < >  '0' then {< =Простая проверка -- это РКЦ?}
    { не учитывает ГРКЦ }
    nls := bic[7]+bic[8]+bic[9]
  else
    nls := '0'+ bic[5]+bic[6]; { РКЦ }
  nls := aNLs + nls;
  s:= 0;
  for i := 1 to 23 do
    s := s + ( ( (byte(nls[i])-48) * (byte(msk[i])-48) ) mod 10 );
  s := s mod 10;
  CheckCtrlKey := s = 0;
end;

Функция Delphi CheckCtrlKey предназначена для генерации банковского ключа на основе вводных значений aNLs (строка) и aMfo (число с плавающей точкой). Банк key вычисляется с помощью конкретного алгоритма, который涉гивает манипуляцию входными строками и числами. Вот шаг за шагом, что код делает:

  1. Он конвертирует значение aMfo в строку с 9 цифрами, добавляя нули, если необходимо, и хранит ее в переменной bic.
  2. Если 7-й символ строки bic не равен '0', функция предполагает, что это RKC (Русский код валюты) и извлекает последние три символа (nls) как bic[7]+bic[8]+bic[9].
  3. В противном случае, если 7-й символ равен '0', функция предполагает, что это RKC и извлекает последние два символа (nls) как '0'+ bic[5]+bic[6].
  4. Функция конкатенирует строку aNLs с извлеченным значением nls, чтобы образовать новую строку.
  5. Затем код вычисляет сумму произведений каждого символа в новой строке и соответствующего символа в строке msk (которая жестко закодирована как 28-символьная строка). Результат делится на 10, и остаток хранится в переменной s.
  6. Наконец, функция возвращает true, если вычисленное значение s равно 0; иначе, она возвращает false.

Код также включает комментарии, которые указывают на потенциальные проблемы с реализацией:

  • Он не учитывает случай GRKCT (Global Russian Currency Code).
  • Комментарий < <=Простая проверка -- это РКЦ? предполагает, что может быть более простым способом проверки, является ли это RKC.

В отношении улучшений следующие предложения:

  • Следует использовать более описательные имена переменных вместо aNLs, aMfo и msk.
  • Добавьте больше комментариев, чтобы объяснить алгоритм и его предположения.
  • Если возможно, рассмотрите валидацию вводных значений для обеспечения соответствия ожидаемым форматам.
  • Если вы хотите сделать код более устойчивым, можно добавить обработку ошибок для случаев, когда значения ввода недопустимы или не могут быть обработаны.

В целом, эта функция appears to be an implementation of a specific bank key generation algorithm, and its purpose is likely limited to generating a specific type of key based on user input.

Создание банковского ключа - функция, которая генерирует контрольную сумму на основе номера лицевого счета (НЛС) и кода МФО.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Шифрование ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-04-04 02:34:40/0.0054910182952881/0