Ron23111 Ответов: 2

Как сгенерировать случайный номер банковского счета на C#


Я хочу сгенерировать номер банковского счета, номер должен начинаться с 32, как, например, 32098723, 32162545, 32752934 и т.д., и он должен быть из 8 цифр. Может ли кто-нибудь помочь мне, пожалуйста, и спасибо.

Что я уже пробовал:

public long GetNewAccountNumber(длинный номер счета)
{
Random random = новый случайный();
long newAccountNumber = random.Next(32000000, 33000000);


вернуть newAccountNumber;




}

Patrice T

У вас есть вопрос или проблема ?

Ron23111

это мой вопрос, что я сделал это правильно или нет

Patrice T

Зависеть.
В чем разница между 8-значным случайным числом и банковским счетом ?

George Swan

Номера банковских счетов не случайны. К ним применяется какая-то арифметика по модулю. Видишь это https://www.vocalink.com/media/1733/vocalink-validating-account-numbers-v350.pdf

Patrice T

Я это знаю, но знает ли ОП ? :)

2 Ответов

Рейтинг:
9

CHill60

Решение 1 предоставляет вам псевдослучайные числа и действительно должно было предупредить вас о последствиях этого (например, вы можете получить дубликаты). Дополнительную информацию смотрите в документации Случайный Класс (Система) | Microsoft Docs[^]

Вероятно, вам было бы лучше использовать Класс RNGCryptoServiceProvider[^Есть примеры того, как это сделать по этой ссылке.

Как только вы получите свое случайное число r вы можете сгенерировать номер своего банковского счета с помощью

string accNumber = String.Format("32{0}", r.ToString("D6"));
Теперь обратите внимание на комментарии @ppolymorphe и @George-Swan - банковские счета-это не просто случайные числа, они следуют очень специфическим правилам. После того, как вы сгенерировали свой номер, вы должны проверить, что он действителен.

Вот кликабельная версия ссылки Джорджа https://www.vocalink.com/media/1733/vocalink-validating-account-numbers-v350.pdf[^]

Вот еще один пример инструмента проверки Sortcode и проверка банковского счета - руководство для разработчиков C# [^]

А вот статья Codeproject на эту тему Валидатор IBAN[^]

Существует множество коммерческих продуктов и API, доступных для проведения валидации.


Ron23111

Большое вам спасибо за Вашу помощь CHill60 и Er. Puneet Goel

Er. Puneet Goel

Добро пожаловать.

Рейтинг:
17

Er. Puneet Goel

Вот он:

String startWith = "32";
Random generator = new Random();
String r = generator.Next(0, 999999).ToString("D6");
String aAccounNumber = startWith + r;