ランダムな形式準拠のIBANを作成するか、既存のIBANを検証するためのシンプルなツールです。金融アプリケーション、銀行ソフトウェア、教育目的のテストに最適です。
国際銀行口座番号(IBAN)生成および検証ツールは、金融アプリケーション、銀行ソフトウェア、教育コンテキストでのテストと検証を目的とした包括的なツールです。このユーザーフレンドリーなアプリケーションは、ランダムでありながら形式に準拠したIBANを生成する機能と、ユーザーが入力したIBANの構造的完全性を検証する機能の2つの重要な機能を提供します。金融ソフトウェアをテストしている開発者、銀行アプリケーションを検証しているQAスペシャリスト、国際銀行基準を説明している教育者であっても、このツールは複雑な設定やサードパーティの統合を必要とせず、簡単なソリューションを提供します。
IBAN(国際銀行口座番号)は、国際的に標準化された口座識別子であり、国境を越えた取引を円滑にし、国際送金の誤りを減らすために使用されます。各IBANは、国コード、チェックデジット、および国ごとの形式に従った基本銀行口座番号(BBAN)で構成されています。当ツールは複数の国の形式をサポートし、生成されたすべてのIBANがISO 13616標準に指定されたMOD 97検証アルゴリズムを通過することを保証します。
IBANは最大34文字の英数字で構成されますが、正確な長さは国によって異なります。標準の構造は次のようになります。
例えば、ドイツのIBANはDE2!n8!n10!n
の構造に従います:
DE
は国コード2!n
は2桁の数字のチェックデジットを表します8!n
は8桁の銀行コードを表します10!n
は10桁の口座番号を表します異なる国には異なるBBAN形式があり、IBANの長さが異なります:
国名 | 長さ | 構造 | 例 |
---|---|---|---|
ドイツ (DE) | 22 | DE2!n8!n10!n | DE89370400440532013000 |
英国 (GB) | 22 | GB2!n4!a6!n8!n | GB29NWBK60161331926819 |
フランス (FR) | 27 | FR2!n5!n5!n11!c2!n | FR1420041010050500013M02606 |
スペイン (ES) | 24 | ES2!n4!n4!n1!n1!n10!n | ES9121000418450200051332 |
イタリア (IT) | 27 | IT2!n1!a5!n5!n12!c | IT60X0542811101000000123456 |
IBAN検証プロセスは、ISO 7064標準に指定されたMOD 97アルゴリズムを使用します。以下の手順で行います:
数学的には、次のように表されます:
当ツールの検証機能は、このアルゴリズムを実装して、ユーザーが入力したIBANの構造的完全性を確認します。
IBAN生成器は、テスト目的のためにランダムでありながら有効なIBANを生成します。主な機能は次のとおりです:
生成器は次の手順でIBANを生成します:
IBAN検証器は、ユーザーが入力したIBANの構造的完全性をチェックします。主な機能は次のとおりです:
検証器は複数のチェックを実行します:
IBAN生成および検証ツールは、さまざまなドメインで複数の目的に役立ちます:
私たちのIBAN生成および検証ツールは、テスト目的のための簡素化された体験を提供しますが、考慮すべき代替アプローチもあります:
私たちのツールは、複雑な統合や有料サブスクリプションを必要とせず、生成と検証の両方の機能を提供することで、これらの代替手段のギャップを埋めます。
IBAN(国際銀行口座番号)は、国境を越えた銀行口座を特定するために開発された国際的な標準番号システムです。これは、国際的な取引をエラーなく行うために国際標準化機構(ISO)によって設立されました。
IBAN生成器は、ISO 13616標準に指定されたMOD 97チェックアルゴリズムを通過する構造的に有効なIBANを生成します。生成されたIBANは数学的に有効ですが、ランダムであり、実際の銀行口座にリンクされていないため、テストには最適ですが、実際の取引には使用できません。
このツールは、ドイツ、英国、フランス、スペイン、イタリア、オランダ、スイス、オーストリア、ベルギー、ポーランドのIBAN形式を現在サポートしています。これらは、ヨーロッパで最も一般的に使用されるIBAN形式をカバーしています。
いいえ。この生成器によって作成されたIBANは構造的に有効ですが、ランダムに生成されたものであり、実際の銀行口座に接続されていません。これらはテスト、教育、またはデモ目的でのみ使用してください。
検証器はIBANのいくつかの側面をチェックします:
いいえ。IBANは通常、可読性のためにスペースを含む(通常は4文字ごとにグループ化)形式で表示されますが、検証中にスペースは無視されます。当ツールは、フォーマットされたIBANとフォーマットされていないIBANの両方を処理します。
いいえ。このツールは完全にブラウザ内で動作します。IBANデータはサーバーに送信されず、保存されず、第三者と共有されることはありません。あなたのデータはプライベートで安全です。
現在、このツールはドロップダウンにリストされているサポートされている国のIBANのみを検証します。追加の国の検証が必要な場合は、フィードバックフォームを通じてお知らせください。
IBANが検証に失敗する理由はいくつかあります:
ツールの改善に向けたフィードバックを歓迎します。ページの下部にあるリンクからアクセスできるフィードバックフォームを使用して、問題を報告したり、改善案を提案したりしてください。
IBANの検証と生成を独自のアプリケーションに実装したい開発者向けに、さまざまなプログラミング言語でのコード例を以下に示します:
1function validateIban(iban) {
2 // スペースを削除し、大文字に変換
3 const cleanedIban = iban.replace(/\s/g, '').toUpperCase();
4
5 // 基本的な形式チェック
6 if (!/^[A-Z]{2}[0-9]{2}[A-Z0-9]{1,30}$/.test(cleanedIban)) {
7 return false;
8 }
9
10 // 最初の4文字を末尾に移動
11 const rearranged = cleanedIban.substring(4) + cleanedIban.substring(0, 4);
12 // 文字を数字に変換
13 const converted = rearranged.split('').map(char => {
14 if (/[A-Z]/.test(char)) {
15 return (char.charCodeAt(0) - 55).toString();
16 }
17 return char;
18 }).join('');
19
20 // mod 97を計算
21 let remainder = 0;
22 for (let i = 0; i < converted.length; i++) {
23 remainder = (remainder * 10 + parseInt(converted[i], 10)) % 97;
24 }
25
26 return remainder === 1;
27}
28
29// 使用例
30console.log(validateIban('DE89 3704 0044 0532 0130 00')); // true
31console.log(validateIban('GB29 NWBK 6016 1331 9268 19')); // true
32console.log(validateIban('DE89 3704 0044 0532 0130 01')); // false (無効なチェックデジット)
33
1def validate_iban(iban):
2 # スペースを削除し、大文字に変換
3 iban = iban.replace(' ', '').upper()
4
5 # 基本的な形式チェック
6 if not (len(iban) > 4 and iban[:2].isalpha() and iban[2:4].isdigit()):
7 return False
8
9 # 最初の4文字を末尾に移動
10 rearranged = iban[4:] + iban[:4]
11
12 # 文字を数字に変換(A=10, B=11, ..., Z=35)
13 converted = ''
14 for char in rearranged:
15 if char.isalpha():
16 converted += str(ord(char) - 55)
17 else:
18 converted += char
19
20 # 98からmod 97を計算
21 return int(converted) % 97 == 1
22
23# 使用例
24print(validate_iban('DE89 3704 0044 0532 0130 00')) # True
25print(validate_iban('GB29 NWBK 6016 1331 9268 19')) # True
26print(validate_iban('DE89 3704 0044 0532 0130 01')) # False (無効なチェックデジット)
27
1public class IbanValidator {
2 public static boolean validateIban(String iban) {
3 // スペースを削除し、大文字に変換
4 String cleanedIban = iban.replaceAll("\\s", "").toUpperCase();
5
6 // 基本的な形式チェック
7 if (!cleanedIban.matches("[A-Z]{2}[0-9]{2}[A-Z0-9]{1,30}")) {
8 return false;
9 }
10
11 // 最初の4文字を末尾に移動
12 String rearranged = cleanedIban.substring(4) + cleanedIban.substring(0, 4);
13
14 // 文字を数字に変換
15 StringBuilder converted = new StringBuilder();
16 for (char c : rearranged.toCharArray()) {
17 if (Character.isLetter(c)) {
18 converted.append(c - 'A' + 10);
19 } else {
20 converted.append(c);
21 }
22 }
23
24 // BigIntegerを使用してmod 97を計算
25 BigInteger numeric = new BigInteger(converted.toString());
26 return numeric.mod(BigInteger.valueOf(97)).intValue() == 1;
27 }
28
29 public static void main(String[] args) {
30 System.out.println(validateIban("DE89 3704 0044 0532 0130 00")); // true
31 System.out.println(validateIban("GB29 NWBK 6016 1331 9268 19")); // true
32 System.out.println(validateIban("DE89 3704 0044 0532 0130 01")); // false
33 }
34}
35
1function generateIban(countryCode) {
2 const countryFormats = {
3 'DE': { length: 22, bbanPattern: '8n10n' },
4 'GB': { length: 22, bbanPattern: '4a6n8n' },
5 'FR': { length: 27, bbanPattern: '5n5n11c2n' }
6 // 必要に応じて他の国を追加
7 };
8
9 if (!countryFormats[countryCode]) {
10 throw new Error(`国コード ${countryCode} はサポートされていません`);
11 }
12
13 // 国の形式に基づいてランダムなBBANを生成
14 let bban = '';
15 const pattern = countryFormats[countryCode].bbanPattern;
16 let i = 0;
17
18 while (i < pattern.length) {
19 const count = parseInt(pattern.substring(i + 1), 10);
20 const type = pattern[i];
21
22 if (type === 'n') {
23 // 数字を生成
24 for (let j = 0; j < count; j++) {
25 bban += Math.floor(Math.random() * 10);
26 }
27 } else if (type === 'a') {
28 // アルファベットを生成
29 for (let j = 0; j < count; j++) {
30 bban += String.fromCharCode(65 + Math.floor(Math.random() * 26));
31 }
32 } else if (type === 'c') {
33 // アルファベットと数字を生成
34 for (let j = 0; j < count; j++) {
35 const isLetter = Math.random() > 0.5;
36 if (isLetter) {
37 bban += String.fromCharCode(65 + Math.floor(Math.random() * 26));
38 } else {
39 bban += Math.floor(Math.random() * 10);
40 }
41 }
42 }
43
44 i += 2;
45 }
46
47 // チェックデジットを計算
48 const checkDigits = calculateCheckDigits(countryCode, bban);
49
50 return countryCode + checkDigits + bban;
51}
52
53function calculateCheckDigits(countryCode, bban) {
54 // チェックデジット計算のための初期IBANを作成
55 const initialIban = countryCode + '00' + bban;
56
57 // 再配置し、文字を数字に変換
58 const rearranged = bban + countryCode + '00';
59 const converted = rearranged.split('').map(char => {
60 if (/[A-Z]/.test(char)) {
61 return (char.charCodeAt(0) - 55).toString();
62 }
63 return char;
64 }).join('');
65
66 // 98からmod 97を計算
67 let remainder = 0;
68 for (let i = 0; i < converted.length; i++) {
69 remainder = (remainder * 10 + parseInt(converted[i], 10)) % 97;
70 }
71
72 const checkDigits = (98 - remainder).toString().padStart(2, '0');
73 return checkDigits;
74}
75
76// 使用例
77console.log(generateIban('DE')); // 有効なドイツのIBANを生成
78console.log(generateIban('GB')); // 有効な英国のIBANを生成
79
1import random
2import string
3
4def generate_iban(country_code):
5 country_formats = {
6 'DE': {'length': 22, 'bban_format': '8n10n'},
7 'GB': {'length': 22, 'bban_format': '4a6n8n'},
8 'FR': {'length': 27, 'bban_format': '5n5n11c2n'}
9 # 必要に応じて他の国を追加
10 }
11
12 if country_code not in country_formats:
13 raise ValueError(f"国コード {country_code} はサポートされていません")
14
15 # 国の形式に基づいてランダムなBBANを生成
16 bban = ''
17 format_str = country_formats[country_code]['bban_format']
18 i = 0
19
20 while i < len(format_str):
21 count = int(''.join(c for c in format_str[i+1:] if c.isdigit()))
22 type_char = format_str[i]
23
24 if type_char == 'n': # 数字
25 bban += ''.join(random.choices(string.digits, k=count))
26 elif type_char == 'a': # アルファベット
27 bban += ''.join(random.choices(string.ascii_uppercase, k=count))
28 elif type_char == 'c': # アルファベットと数字
29 bban += ''.join(random.choices(string.ascii_uppercase + string.digits, k=count))
30
31 i += 1 + len(str(count))
32
33 # チェックデジットを計算
34 check_digits = calculate_check_digits(country_code, bban)
35
36 return country_code + check_digits + bban
37
38def calculate_check_digits(country_code, bban):
39 # チェックデジット計算のための文字列を作成
40 check_string = bban + country_code + '00'
41
42 # 文字を数字に変換(A=10, B=11, ..., Z=35)
43 numeric = ''
44 for char in check_string:
45 if char.isalpha():
46 numeric += str(ord(char.upper()) - 55)
47 else:
48 numeric += char
49
50 # 98からmod 97を計算
51 remainder = int(numeric) % 97
52 check_digits = str(98 - remainder).zfill(2)
53
54 return check_digits
55
56# 使用例
57print(generate_iban('DE')) # 有効なドイツのIBANを生成
58print(generate_iban('GB')) # 有効な英国のIBANを生成
59
IBAN生成および検証ツールは、国際銀行識別子に関連するテストおよび教育目的のためのシンプルでありながら強力なソリューションを提供します。生成と検証の両方の機能をユーザーフレンドリーなインターフェースで提供することで、複雑な設定やサードパーティの統合を必要としません。
金融アプリケーションを開発したり、決済システムをテストしたり、国際銀行基準について学んだりする場合でも、このツールはIBANを扱うための簡単な方法を提供します。包括的な検証により、生成されたすべてのIBANが構造的に健全で国際基準に準拠していることが保証されます。
今すぐIBANを生成または検証して、ツールの機能を体験してください!
ワークフローに役立つかもしれないさらなるツールを発見する