مولّد بيانات وهمية

ولّد بيانات وهمية تجتاز التحقق: بطاقات صحيحة وفق Luhn، وIBAN بـ mod-97، وUUID حقيقية. ببذرة قابلة لإعادة الإنتاج، بصيغة JSON أو CSV أو SQL.

الحقول8 من 40
المخطط
المخرج100 صفاً · 28086 حرفاً
[
  {
    "id": "018cc251-f400-79a7-abdf-9623646f1963",
    "first_name": "Ruby",
    "last_name": "Long",
    "email": "[email protected]",
    "country": "IE",
    "created_at": "2024-04-13T08:13:34Z",
    "last_seen_at": null,
    "is_active": true
  },
  {
    "id": "018cc251-f7e8-7727-8c38-6095cbcabdb9",
    "first_name": "Ellen",
    "last_name": "Hoffman",
    "email": "[email protected]",
    "country": "US",
    "created_at": "2024-06-28T10:45:21Z",
    "last_seen_at": "2024-10-31T16:44:09Z",
    "is_active": false
  },
  {
    "id": "018cc251-fbd0-7056-ad40-e80a775668cc",
    "first_name": "Keith",
    "last_name": "Hudson",
    "email": "[email protected]",
    "country": "AR",
    "created_at": "2025-08-11T01:04:04Z",
    "last_seen_at": "2025-09-19T15:18:41Z",
    "is_active": true
  },
  {
    "id": "018cc251-ffb8-74a1-b4c8-83cc6bd2ae90",
    "first_name": "Thomas",
    "last_name": "Moore",
    "email": "[email protected]",
    "country": "BE",
    "created_at": "2025-02-21T16:27:55Z",
    "last_seen_at": "2025-04-28T03:30:59Z",
    "is_active": true
  },
  {
    "id": "018cc252-03a0-7309-8795-f9f277a8f8c0",
    "first_name": "Benjamin",
    "last_name": "Austin",
    "email": "[email protected]",
    "country": "MX",
    "created_at": "2024-06-15T11:04:56Z",
    "last_seen_at": "2025-06-30T22:00:26Z",
    "is_active": true
  },
  {
    "id": "018cc252-0788-7658-937d-58b138c92232",
    "first_name": "Barbara",
    "last_name": "Flores",
    "email": "[email protected]",
    "country": "GR",
    "created_at": "2024-04-17T19:41:08Z",
    "last_seen_at": "2025-01-13T23:55:46Z",
    "is_active": true
  },
  {
    "id": "018cc252-0b70-7c3a-96ae-719ee90a05af",
    "first_name": "Allen",
    "last_name": "Vazquez",
    "email": "[email protected]",
    "country": "NG",
    "created_at": "2024-09-18T13:23:49Z",
    "last_seen_at": "2026-05-04T06:32:51Z",
    "is_active": false
  },
  {
    "id": "018cc252-0f58-7dfd-8623-52572f04ce20",
    "first_name": "Harry",
    "last_name": "Nichols",
    "email": "[email protected]",
    "country": "SG",
    "created_at": "2026-06-26T14:48:47Z",
    "last_seen_at": "2026-06-30T12:56:13Z",
    "is_active": false
  },
  {
    "id": "018cc252-1340-738f-b536-279444cb4512",
    "first_name": "Elaine",
    "last_name": "Wagner",
    "email": "[email protected]",
    "country": "UA",
    "created_at": "2025-05-09T14:48:44Z",
    "last_seen_at": "2026-05-19T14:58:47Z",
    "is_active": true
  },
  {
    "id": "018cc252-1728-7d96-8856-b87ee9d904e9",
    "first_name": "Fred",
    "last_name": "Fisher",
    "email": "[email protected]",
    "country": "JP",
    "created_at": "2025-11-25T05:27:13Z",
    "last_seen_at": "2026-04-04T05:36:09Z",
    "is_active": true
  },
  {
    "id": "018cc252-1b10-7baa-a79b-9567cf1366fd",
    "first_name": "Lois",
    "last_name": "Nelson",
    "email": "[email protected]",
    "country": "FR",
    "created_at": "2025-05-08T16:32:25Z",
    "last_seen_at": null,
    "is_active": true
  },
  {
    "id": "018cc252-1ef8-7c8c-b859-cea655faef9c",
    "first_name": "Mark",
    "last_name": "Cunningham",
    "email": "[email protected]",
    "country": "FI",
    "created_at": "2026-02-21T11:09:02Z",
    "last_seen_at": null,
    "is_active": true
  },
  {
    "id": "018cc252-22e0-77bf-bc1c-40120a5b29c4",
    "first_name": "Anne",
    "last_name": "Flores",
    "email": "[email protected]",
    "country": "KR",
    "created_at": "2025-08-02T22:55:20Z",
    "last_seen_at": "2025-10-27T03:27:52Z",
    "is_active": true
  },
  {
    "id": "018cc252-26c8-7220-9453-1804e8ce88c4",
    "first_name": "Arthur",
    "last_name": "Crawford",
    "email": "[email protected]",
    "country": "PL",
    "created_at": "2025-02-26T04:55:03Z",
    "last_seen_at": "2025-07-25T07:05:17Z",
    "is_active": true
  },
  {
    "id": "018cc252-2ab0-75a8-8a2b-28833306b87c",
    "first_name": "Ronald",
    "last_name": "Hansen",
    "email": "[email protected]",
    "country": "KR",
    "created_at": "2025-03-09T06:31:44Z",
    "last_seen_at": "2026-01-04T03:11:24Z",
    "is_active": true
  },
  {
    "id": "018cc252-2e98-7c38-93e2-9f80d039eb75",
    "first_name": "Donna",
    "last_name": "Porter",
    "email": "[email protected]",
    "country": "IE",
    "created_at": "2026-01-12T06:55:22Z",
    "last_seen_at": null,
    "is_active": true
  },
  {
    "id": "018cc252-3280-77a0-8152-8f5a9584a581",
    "first_name": "Carol",
    "last_name": "Wells",
    "email": "[email protected]",
    "country": "PL",
    "created_at": "2025-07-20T23:09:02Z",
    "last_seen_at": "2026-01-24T23:04:38Z",
    "is_active": true
  },
  {
    "id": "018cc252-3668-7208-8bbe-619dada6b7e0",
    "first_name": "Sheila",
    "last_name": "Lee",
    "email": "[email protected]",
    "country": "PT",
    "created_at": "2025-01-05T20:09:52Z",
    "last_seen_at": "2025-04-08T12:02:09Z",
    "is_active": false
  },
  {
    "id": "018cc252-3a50-7b11-9261-0c17e909f6fb",
    "first_name": "Jack",
    "last_name": "Evans",
    "email": "[email protected]",
    "country": "KE",
    "created_at": "2025-12-29T14:31:00Z",
    "last_seen_at": "2026-03-28T14:30:43Z",
    "is_active": true
  },
  {
    "id": "018cc252-3e38-7f22-8cc7-0dd649d26379",
    "first_name": "Randy",
    "last_name": "Harris",
    "email": "[email protected]",
    "country": "GB",
    "created_at": "2026-06-26T19:25:04Z",
    "last_seen_at": "2026-06-30T08:39:51Z",
    "is_active": true
  },
  {
    "id": "018cc252-4220-7e86-8dae-b25b4f837713",
    "first_name": "Josephine",
    "last_name": "Castro",
    "email": "[email protected]",
    "country": "DK",
    "created_at": "2024-02-07T22:33:55Z",
    "last_seen_at": "2026-02-23T13:56:30Z",
    "is_active": true
  },
  {
    "id": "018cc252-4608-7120-abd5-535883ca01b9",
    "first_name": "Edith",
    "last_name": "Graham",
    "email": "[email protected]",
    "country": "CN",
    "created_at": "2024-04-29T08:59:26Z",
    "last_seen_at": "2024-06-17T10:20:45Z",
    "is_active": true
  },
  {
    "id": "018cc252-49f0-77f7-9bf9-17e87b0a09c6",
    "first_name": "Tracy",
    "last_name": "Willis",
    "email": "[email protected]",
    "country": "PT",
    "created_at": "2024-03-21T07:42:06Z",
    "last_seen_at": null,
    "is_active": true
  },
  {
    "id": "018cc252-4dd8-75c8-8b04-1e0fb891e435",
    "first_name": "Irene",
    "last_name": "Larson",
    "email": "[email protected]",
    "country": "AT",
    "created_at": "2025-06-04T15:01:38Z",
    "last_seen_at": null,
    "is_active": true
  },
  {
    "id": "018cc252-51c0-7be0-a6ca-12bc704a2b3f",
    "first_name": "Betty",
    "last_name": "Morrison",
    "email": "[email protected]",
    "country": "ID",
    "created_at": "2025-11-11T21:56:19Z",
    "last_seen_at": "2026-03-29T03:33:49Z",
    "is_active": true
  },
  {
    "id": "018cc252-55a8-736d-a7b2-8bec744ecf74",
    "first_name": "Kevin",
    "last_name": "Cox",
    "email": "[email protected]",
    "country": "GR",
    "created_at": "2025-10-06T23:28:21Z",
    "last_seen_at": null,
    "is_active": false
  },
  {
    "id": "018cc252-5990-73ca-a2d3-89bf2b8eb5f6",
    "first_name": "Sean",
    "last_name": "Carr",
    "email": "[email protected]",
    "country": "KR",
    "created_at": "2026-02-19T23:27:53Z",
    "last_seen_at": "2026-03-02T22:16:30Z",
    "is_active": true
  },
  {
    "id": "018cc252-5d78-79e2-bd4d-d8b6867867dc",
    "first_name": "Heather",
    "last_name": "Ferguson",
    "email": "[email protected]",
    "country": "IL",
    "created_at": "2024-07-07T01:39:16Z",
    "last_seen_at": "2025-09-21T19:17:00Z",
    "is_active": false
  },
  {
    "id": "018cc252-6160-78f8-a9af-d73b74581b86",
    "first_name": "Rose",
    "last_name": "Chen",
    "email": "[email protected]",
    "country": "DE",
    "created_at": "2024-09-07T16:16:48Z",
    "last_seen_at": "2024-10-02T08:29:39Z",
    "is_active": true
  },
  {
    "id": "018cc252-6548-71f0-ab4f-c824fd842a67",
    "first_name": "Maria",
    "last_name": "Brooks",
    "email": "[email protected]",
    "country": "FR",
    "created_at": "2024-06-29T06:22:30Z",
    "last_seen_at": "2025-12-22T00:38:13Z",
    "is_active": true
  },
  {
    "id": "018cc252-6930-7067-b516-480051493ec0",
    "first_name": "Donna",
    "last_name": "Hamilton",
    "email": "[email protected]",
    "country": "IE",
    "created_at": "2024-09-01T09:09:40Z",
    "last_seen_at": "2025-03-29T23:26:22Z",
    "is_active": false
  },
  {
    "id": "018cc252-6d18-7de1-bae1-21dc471405fa",
    "first_name": "Rachel",
    "last_name": "Wagner",
    "email": "[email protected]",
    "country": "IE",
    "created_at": "2026-05-31T02:06:02Z",
    "last_seen_at": "2026-06-17T16:37:27Z",
    "is_active": false
  },
  {
    "id": "018cc252-7100-752d-bc4e-c4e5bd755743",
    "first_name": "Philip",
    "last_name": "Jones",
    "email": "[email protected]",
    "country": "NO",
    "created_at": "2024-10-21T12:22:35Z",
    "last_seen_at": "2025-02-15T07:00:10Z",
    "is_active": true
  },
  {
    "id": "018cc252-74e8-7b4d-b9cf-4e8e03d1e269",
    "first_name": "Bonnie",
    "last_name": "Carter",
    "email": "[email protected]",
    "country": "PT",
    "created_at": "2026-05-28T06:16:25Z",
    "last_seen_at": "2026-06-26T21:36:12Z",
    "is_active": true
  },
  {
    "id": "018cc252-78d0-708b-a96f-d9f474e95238",
    "first_name": "Douglas",
    "last_name": "Evans",
    "email": "[email protected]",
    "country": "NG",
    "created_at": "2024-02-18T20:36:33Z",
    "last_seen_at": "2024-10-31T01:37:50Z",
    "is_active": true
  },
  {
    "id": "018cc252-7cb8-7865-96fa-e9681611dbed",
    "first_name": "Theresa",
    "last_name": "Larson",
    "email": "[email protected]",
    "country": "NZ",
    "created_at": "2024-11-21T08:57:18Z",
    "last_seen_at": null,
    "is_active": true
  },
  {
    "id": "018cc252-80a0-7eca-80cd-7159faf3467f",
    "first_name": "Gladys",
    "last_name": "Reyes",
    "email": "[email protected]",
    "country": "NG",
    "created_at": "2024-04-27T11:34:46Z",
    "last_seen_at": "2026-03-09T18:39:31Z",
    "is_active": true
  },
  {
    "id": "018cc252-8488-76b2-9271-dabf0da27b4f",
    "first_name": "Bonnie",
    "last_name": "Cook",
    "email": "[email protected]",
    "country": "AT",
    "created_at": "2024-01-13T17:42:35Z",
    "last_seen_at": null,
    "is_active": true
  },
  {
    "id": "018cc252-8870-70d0-ab33-72cd838e6603",
    "first_name": "Diane",
    "last_name": "Wells",
    "email": "[email protected]",
    "country": "NZ",
    "created_at": "2024-05-02T11:22:23Z",
    "last_seen_at": null,
    "is_active": true
  },
  {
    "id": "018cc252-8c58-725c-980d-f206b971497b",
    "first_name": "Gloria",
    "last_name": "Woods",
    "email": "[email protected]",
    "country": "IT",
    "created_at": "2025-06-27T01:56:54Z",
    "last_seen_at": "2025-09-04T17:13:00Z",
    "is_active": true
  },
  {
    "id": "018cc252-9040-786d-90d1-5c9bae512dbf",
    "first_name": "Alan",
    "last_name": "Rodriguez",
    "email": "[email protected]",
    "country": "DK",
    "created_at": "2026-03-29T17:48:08Z",
    "last_seen_at": null,
    "is_active": true
  },
  {
    "id": "018cc252-9428-7b58-8dde-508b603b97d8",
    "first_name": "Leonard",
    "last_name": "Jones",
    "email": "[email protected]",
    "country": "MX",
    "created_at": "2026-02-06T22:38:18Z",
    "last_seen_at": "2026-04-27T00:46:32Z",
    "is_active": true
  },
  {
    "id": "018cc252-9810-7c69-8024-23852691d72c",
    "first_name": "Maria",
    "last_name": "Davis",
    "email": "[email protected]",
    "country": "JP",
    "created_at": "2025-03-30T14:01:05Z",
    "last_seen_at": "2025-04-24T10:25:01Z",
    "is_active": true
  },
  {
    "id": "018cc252-9bf8-7e3a-a37a-06b1a661a0dc",
    "first_name": "Carl",
    "last_name": "Duncan",
    "email": "[email protected]",
    "country": "KE",
    "created_at": "2026-03-30T06:02:52Z",
    "last_seen_at": "2026-05-16T00:15:55Z",
    "is_active": false
  },
  {
    "id": "018cc252-9fe0-7a01-8a38-5d3e36f9eca3",
    "first_name": "Phillip",
    "last_name": "Harrison",
    "email": "[email protected]",
    "country": "DK",
    "created_at": "2024-07-12T01:56:26Z",
    "last_seen_at": "2026-05-28T21:32:17Z",
    "is_active": true
  },
  {
    "id": "018cc252-a3c8-7977-a212-1c82b978ccbe",
    "first_name": "Kim",
    "last_name": "Franklin",
    "email": "[email protected]",
    "country": "KE",
    "created_at": "2024-09-23T15:16:03Z",
    "last_seen_at": "2025-08-20T03:29:07Z",
    "is_active": true
  },
  {
    "id": "018cc252-a7b0-78f6-bb2a-d194bc638e71",
    "first_name": "Patrick",
    "last_name": "Coleman",
    "email": "[email protected]",
    "country": "ID",
    "created_at": "2025-01-06T09:04:26Z",
    "last_seen_at": "2025-07-21T22:36:07Z",
    "is_active": true
  },
  {
    "id": "018cc252-ab98-7b5b-8f5c-8b6a21b71208",
    "first_name": "Harry",
    "last_name": "Martin",
    "email": "[email protected]",
    "country": "ES",
    "created_at": "2026-02-21T17:42:10Z",
    "last_seen_at": "2026-05-16T20:52:12Z",
    "is_active": true
  },
  {
    "id": "018cc252-af80-7504-8719-59c6e3efd9c3",
    "first_name": "Carlos",
    "last_name": "Gibson",
    "email": "[email protected]",
    "country": "ZA",
    "created_at": "2024-01-14T06:39:34Z",
    "last_seen_at": null,
    "is_active": true
  },
  {
    "id": "018cc252-b368-7525-9a9c-a09c2f8c2c8b",
    "first_name": "Jean",
    "last_name": "Morales",
    "email": "[email protected]",
    "country": "CA",
    "created_at": "2025-06-05T13:13:54Z",
    "last_seen_at": "2025-07-18T07:30:36Z",
    "is_active": true
  },
  {
    "id": "018cc252-b750-76bd-81cc-42435c3231bd",
    "first_name": "Ernest",
    "last_name": "Cooper",
    "email": "[email protected]",
    "country": "FR",
    "created_at": "2026-06-30T05:15:30Z",
    "last_seen_at": "2026-06-30T22:07:31Z",
    "is_active": true
  },
  {
    "id": "018cc252-bb38-7a65-8fdd-29417173ce08",
    "first_name": "John",
    "last_name": "Wallace",
    "email": "[email protected]",
    "country": "GR",
    "created_at": "2024-01-01T11:53:11Z",
    "last_seen_at": "2025-05-13T01:10:51Z",
    "is_active": false
  },
  {
    "id": "018cc252-bf20-7253-a075-e01c6d997ffd",
    "first_name": "Lee",
    "last_name": "Brooks",
    "email": "[email protected]",
    "country": "AU",
    "created_at": "2024-03-20T07:03:24Z",
    "last_seen_at": "2025-04-29T10:30:14Z",
    "is_active": true
  },
  {
    "id": "018cc252-c308-7709-a61e-916f4cb44f86",
    "first_name": "Antonio",
    "last_name": "Evans",
    "email": "[email protected]",
    "country": "JP",
    "created_at": "2025-09-17T01:49:49Z",
    "last_seen_at": "2026-04-27T19:54:08Z",
    "is_active": true
  },
  {
    "id": "018cc252-c6f0-7095-be95-c60913b0062d",
    "first_name": "Jose",
    "last_name": "Porter",
    "email": "[email protected]",
    "country": "ZA",
    "created_at": "2024-06-01T00:33:54Z",
    "last_seen_at": "2024-09-30T08:59:58Z",
    "is_active": false
  },
  {
    "id": "018cc252-cad8-7565-b5d8-117f4a6fb217",
    "first_name": "Eric",
    "last_name": "Ward",
    "email": "[email protected]",
    "country": "TR",
    "created_at": "2024-03-06T08:01:45Z",
    "last_seen_at": "2024-10-07T12:38:03Z",
    "is_active": true
  },
  {
    "id": "018cc252-cec0-79ae-adaa-96058dd4aabe",
    "first_name": "Marjorie",
    "last_name": "Cox",
    "email": "[email protected]",
    "country": "NG",
    "created_at": "2026-06-08T11:01:04Z",
    "last_seen_at": "2026-06-20T16:41:37Z",
    "is_active": true
  },
  {
    "id": "018cc252-d2a8-7d31-bab8-63bfaa7342bd",
    "first_name": "Bryan",
    "last_name": "Pena",
    "email": "[email protected]",
    "country": "IT",
    "created_at": "2024-01-06T14:25:41Z",
    "last_seen_at": null,
    "is_active": true
  },
  {
    "id": "018cc252-d690-7e1b-a275-f48a8c1ccbf6",
    "first_name": "Catherine",
    "last_name": "Munoz",
    "email": "[email protected]",
    "country": "AU",
    "created_at": "2026-05-30T07:29:25Z",
    "last_seen_at": "2026-06-23T08:23:39Z",
    "is_active": true
  },
  {
    "id": "018cc252-da78-7c22-9180-f137d46ec702",
    "first_name": "Joyce",
    "last_name": "Jordan",
    "email": "[email protected]",
    "country": "TR",
    "created_at": "2025-01-13T19:52:26Z",
    "last_seen_at": null,
    "is_active": true
  },
  {
    "id": "018cc252-de60-7bc5-907f-8eebca9226bf",
    "first_name": "Jennifer",
    "last_name": "Riley",
    "email": "[email protected]",
    "country": "AT",
    "created_at": "2026-02-21T06:27:48Z",
    "last_seen_at": "2026-04-30T10:23:57Z",
    "is_active": true
  },
  {
    "id": "018cc252-e248-7464-86b7-54ee11fc6051",
    "first_name": "Amanda",
    "last_name": "Daniels",
    "email": "[email protected]",
    "country": "IL",
    "created_at": "2025-04-29T02:18:30Z",
    "last_seen_at": "2026-04-17T18:37:07Z",
    "is_active": false
  },
  {
    "id": "018cc252-e630-7bf3-ab8d-a72175e7c3fb",
    "first_name": "Laura",
    "last_name": "Alvarado",
    "email": "[email protected]",
    "country": "PT",
    "created_at": "2024-08-26T17:26:51Z",
    "last_seen_at": "2025-09-16T12:46:07Z",
    "is_active": true
  },
  {
    "id": "018cc252-ea18-74fb-955a-5d6d42ed1760",
    "first_name": "Andrea",
    "last_name": "Turner",
    "email": "[email protected]",
    "country": "CA",
    "created_at": "2024-07-13T08:04:19Z",
    "last_seen_at": "2025-01-08T17:24:13Z",
    "is_active": true
  },
  {
    "id": "018cc252-ee00-7216-953a-2094b3402b1e",
    "first_name": "Margaret",
    "last_name": "Jackson",
    "email": "[email protected]",
    "country": "NZ",
    "created_at": "2025-07-14T00:05:54Z",
    "last_seen_at": "2026-05-05T09:44:04Z",
    "is_active": true
  },
  {
    "id": "018cc252-f1e8-7262-91aa-5818265220ca",
    "first_name": "Rose",
    "last_name": "Johnson",
    "email": "[email protected]",
    "country": "KR",
    "created_at": "2024-07-18T02:49:21Z",
    "last_seen_at": "2025-04-18T08:52:53Z",
    "is_active": true
  },
  {
    "id": "018cc252-f5d0-72f1-ba49-a52514f881dd",
    "first_name": "Fred",
    "last_name": "George",
    "email": "[email protected]",
    "country": "PL",
    "created_at": "2025-10-26T23:11:53Z",
    "last_seen_at": "2025-11-05T21:15:27Z",
    "is_active": true
  },
  {
    "id": "018cc252-f9b8-7173-b05d-540124a4fc47",
    "first_name": "Sara",
    "last_name": "Greene",
    "email": "[email protected]",
    "country": "PT",
    "created_at": "2026-04-26T10:11:22Z",
    "last_seen_at": "2026-05-07T04:01:08Z",
    "is_active": true
  },
  {
    "id": "018cc252-fda0-7ed5-a24a-3f179c69fc3c",
    "first_name": "Jesse",
    "last_name": "Bennett",
    "email": "[email protected]",
    "country": "SG",
    "created_at": "2025-10-08T16:19:51Z",
    "last_seen_at": "2026-03-04T05:50:50Z",
    "is_active": true
  },
  {
    "id": "018cc253-0188-74dd-a728-ed228fc827ac",
    "first_name": "Louise",
    "last_name": "Santos",
    "email": "[email protected]",
    "country": "FI",
    "created_at": "2026-05-29T18:38:35Z",
    "last_seen_at": "2026-06-01T15:33:29Z",
    "is_active": true
  },
  {
    "id": "018cc253-0570-7408-b582-07fbebeacbbf",
    "first_name": "Scott",
    "last_name": "Grant",
    "email": "[email protected]",
    "country": "NZ",
    "created_at": "2024-02-11T17:35:11Z",
    "last_seen_at": "2025-08-06T23:23:49Z",
    "is_active": true
  },
  {
    "id": "018cc253-0958-7c12-b38e-edc7af958916",
    "first_name": "Judy",
    "last_n

تُعرض أول 20000 حرف من أصل 28086. النسخ والتنزيل يأخذان الكل.

يذهب البريد إلى example.com، والهواتف إلى كتلة 555-0100، والعناوين إلى شبكات التوثيق، والبطاقات إلى أرقام BIN المنشورة للاختبار — كل قيمة افتراضية هنا نطاق يحجزه معيار، فلا يمكن لشيء ينتج هنا أن يخصّ شخصاً حقيقياً.

بيانات تجتاز مدقّقاتك

الشكوى المعتادة من بيانات الاختبار المولّدة ليست أنها تبدو مزيّفة، بل أنها تفشل. رقم بطاقة لن تقبله أي مكتبة مدفوعات، وIBAN يرفضه نموذج مصرفي، وISBN لا يستطيع قارئ الباركود قراءته، وUUID رقم إصداره هو ما صادف أن تكون عليه البايتات العشوائية. فينتهي بك الأمر إلى تحرير ملف التثبيت يدوياً، وعندها يكون المولّد قد كلّفك أكثر مما وفّر.

كل قيمة هنا يعرّف لها معيار منشور عملية تحقق تحمل التحقق الصحيح. هذه كمية صغيرة من الحساب، وهي تغيّر الغرض من البيانات: يصبح بإمكانك أن توجّه إليها عملية التحقق الحقيقية لديك.

  • أرقام البطاقات تحمل رقم تحقق Luhn وفق ISO/IEC 7812-1، محسوباً على الأرقام التي تسبقه، وتقوم على رقم BIN المنشور للاختبار للعلامة التي تختارها.
  • أرقام IBAN تحقق ISO 7064 mod-97 — إذ تُختار أرقام التحقق بحيث يترك الرقم بعد إعادة ترتيبه وتوسيع حروفه باقياً يساوي 1 — وهي بالطول الذي تسجّله تلك الدولة تحديداً، وهو ما لا تلتقطه mod-97 وحدها.
  • قيم ISBN-13 وEAN-13 تحمل رقم التحقق بالأوزان المتناوبة 1 و3، تحت إحدى بادئتي GS1 المخصصتين لنظام ISBN.
  • أرقام UUID تحمل بتات الإصدار والصيغة التي يفرضها RFC 9562، فيعلن المحلّل أنها v4 أو v7 بدل أن يقف حائراً.
  • العناوين وأختام الوقت والإصدارات الدلالية ورموز العملات مكتوبة بالشكل الذي يعرّفه معيارها، لا بتقريب له.

لا شيء من ذلك يجعل البيانات حقيقية، بل يجعلها سليمة التكوين، وهي الخاصية الوحيدة التي يستطيع ملف تثبيت أن يدّعيها بصدق.

البذرة، ولماذا هي جوهر الأمر

المولّد الذي يعطيك صفوفاً مختلفة في كل مرة لعبة. فما إن تدخل البيانات في اختبار أو عرض أو لقطة شاشة حتى تحتاج إلى القدرة على استرجاعها: بعد تحديث الصفحة، وعلى جهاز زميل، وفي التكامل المستمر بعد عام.

لذلك فالعشوائية هنا مزروعة ببذرة. البذرة نصّ تختاره أنت، وتنتج البذرة نفسها مع المخطط نفسه وعدد الصفوف نفسه مخرجات متطابقة بايتاً ببايت في كل مكان. المولّد هو xoshiro128** مزروعاً عبر splitmix64، وكلاهما خوارزميتان منشورتان لهما تنفيذ مرجعي، وهذه الصفحة مختبرة على مخرجات منقولة من ذلك التنفيذ لا على نفسها.

seed  "orders-2026"     same rows, every time, everywhere
seed  "orders-2027"     a completely different set

field stream = hash(seed, field name)
row N of a field depends on nothing but the seed, the name and N

يستحق السطر الأخير قراءتين، لأنه ما يجعل الأداة صالحة للاستعمال لا مجرد قابلة لإعادة الإنتاج. كل حقل يسحب من مجرى خاص به مرتبط باسمه. أضف عموداً فتخرج جميع الأعمدة القائمة متطابقة. ارفع عدد الصفوف من مئة إلى ألف فتكون المئة الأولى هي نفسها التي كانت لديك. ملف تثبيت أودعته أمس يظل مطابقاً بعد أن توسّع المخطط اليوم.

والثمن الصادق للربط بالاسم أن تغيير اسم الحقل يستبدل بياناته، لأن الاسم نصف البذرة. ونسبة الفراغات هي الإعداد الوحيد المستثنى عمداً: فقرار تفريغ قيمة يُتخذ بعد سحب القيمة، ولذلك يزيل تشغيل الفراغات بعض الصفوف دون أن يزحزح الباقي.

وينبع تحذير واحد مباشرةً من كل هذا: المولّد المزروع ببذرة قابل للتنبؤ بحكم تصميمه، وهذه هي الميزة. فلا يجوز أبداً استعمال شيء ينتجه ككلمة مرور أو رمز أو مفتاح. لتلك استعمل مولّداً يسحب من مصدر العشوائية المعمائي في المنصّة.

نطاقات محجوزة كي لا تكون بياناتك حقيقية

المولّد الذي يخرج عناوين على نطاق بريد حقيقي يسلّمك سلاحاً محشواً. فحزم الاختبار ترسل بريداً، وبيئات التجربة تُوجَّه أحياناً إلى خادم البريد الإنتاجي، واختبارات الحمل تنهال على أي عنوان IP مكتوب في ملف التثبيت. وحين تكون القيمة ملكاً لأحد، يصله الحادث.

توقّعت هيئات التقييس ذلك فخصّصت نطاقات مضمون ألا تُسنَد أبداً. وكل قيمة افتراضية هنا تسحب من إحداها:

  • البريد ينتهي إلى example.com وexample.net وexample.org، وهي محجوزة إلى الأبد بموجب RFC 2606، إلى جانب نطاقات .test و.example و.invalid العليا التي يضيفها RFC 6761.
  • أرقام الهواتف تستعمل 555-0100 حتى 555-0199، وهي الكتلة التي يحجزها ترقيم أمريكا الشمالية للخيال — ولذلك تستعملها الأفلام.
  • عناوين IPv4 تأتي من 192.0.2.0/24 و198.51.100.0/24 و203.0.113.0/24، وهي شبكات التوثيق الثلاث في RFC 5737، وعناوين IPv6 من 2001:db8::/32 بموجب RFC 3849.
  • عناوين MAC ترفع بت الإدارة المحلية الذي تضمن IEEE ألا تسنده أبداً؛ وتُعرض أيضاً كتلة التوثيق في RFC 7042 وإن كانت لا تضم سوى 256 عنواناً.
  • أرقام البطاقات تُبنى على أرقام BIN الأربعة المنشورة للاختبار لا على نطاق إصدار حيّ، فلا يمكن لرقم صحيح وفق Luhn أن يصادف بطاقة حقيقية.

ويمكن تجاوز كل واحد من هذه حين يكون لديك سبب: نطاق خاص بك لبيئة تجربة، أو كتلة CIDR تطابق شبكتك. القيمة الافتراضية هي الجواب الآمن، والتجاوز قرار تتخذه عن قصد.

أما الأسماء والأماكن فمأخوذة من توزيعات الأسماء التي ينشرها مكتب التعداد الأمريكي ومن قائمته للبلدات المسجّلة. وهي أسماء إنجليزية شائعة، أي أن اسماً مولّداً قد يصادف اسم شخص حقيقي — كما قد يصادف أي اسم. فتعامل مع المخرجات بما هي عليه: سلاسل معقولة، لا أشخاص.

حقول تشير إلى بعضها

الأعمدة المستقلة تنتج صفوفاً تتهاوى عند أول نظرة. فمستخدمة اسمها دانة لاڤي وعنوان بريدها لا صلة له باسمها تبدو معطوبة في لقطة الشاشة، وختم تحديث يسبق ختم الإنشاء سيُسقط اختباراً حقيقياً.

وبدل حالة خاصة لكل زوج هناك آلية واحدة: أي إعداد موسوم بأنه يقبل الإشارات يجوز أن يسمّي حقلاً آخر بين قوسين معقوفين مزدوجين، فيُملأ من الصف نفسه. عندئذ تُولَّد الحقول بترتيب التبعية لا بالترتيب الذي أدرجتها به، وتُبلَّغ حلقة الإشارات كخطأ في المخطط بدل أن تتجمد الأداة.

ويمتد ذلك إلى ما هو أبعد من البريد. فحقل القالب يبني أي سلسلة تريدها من أعمدة أخرى مع تحويل اختياري لحالة الأحرف. وحدّ حقل التاريخ الأدنى أو الأعلى يجوز أن يسمّي حقل تاريخ آخر، وهكذا تحصل على خط زمني متماسك. وحين تكون القيمة المُشار إليها فارغة يكون الحقل التابع لها فارغاً أيضاً، بدل التراجع بهدوء إلى نافذة افتراضية لم يذكرها المخطط قط.

إخراجها: JSON وNDJSON وCSV وSQL

JSON هي الصيغة البديهية وتخرج بإزاحة أو في سطر واحد. أما NDJSON — كائن مضغوط واحد في كل سطر — فهو ما تتوقعه أنابيب السجلات ومستوردات التدفق، وهو الصيغة التي تلصقها في أداة تقرأ سجلاً واحداً في كل مرة.

وتتبع CSV مواصفة RFC 4180: تُقتبس الحقول فقط حين تحتوي فاصلة أو علامة اقتباس أو فاصل أسطر، وتُضاعَف علامة الاقتباس الداخلية، وتنتهي الأسطر بـ CRLF. وهذه هي الصورة التي تتفق عليها الجداول الحسابية ومحمّلات قواعد البيانات.

وفي SQL يتهاون المولّدون عادةً، لأن الجواب الصحيح يتوقف على اللهجة. فاقتباس المعرّفات يختلف — PostgreSQL وSQLite يأخذان علامتي اقتباس مزدوجتين، وMySQL يأخذ الشرطة المائلة الخلفية العلوية، وSQL Server يأخذ القوسين المعقوفين — وكل منها يضاعف تو اقتباسه داخل الاسم. أما السلاسل فتضاعف علامة الاقتباس المفردة في كل مكان، غير أن MySQL يقرأ الشرطة المائلة العكسية كتو هروب ما لم يكن NO_BACKSLASH_ESCAPES مفعّلاً، فمسار Windows المنتهي بها كان سيبتلع علامة الإغلاق. والقيم المنطقية هي الانقسام الثالث: لدى PostgreSQL نوع منطقي حقيقي بينما تريد البقية 1 و0. ويرفض SQL Server بانياً لجدول قيم بأكثر من ألف صف، فيخرج التصدير الكبير في عدة أوامر بدل أمر واحد يفشل.

PostgreSQL   INSERT INTO "records" ("id", "ok") VALUES (1, TRUE);
MySQL        INSERT INTO `records` (`id`, `ok`) VALUES (1, 1);
SQLite       INSERT INTO "records" ("id", "ok") VALUES (1, 1);
SQL Server   INSERT INTO [records] ([id], [ok]) VALUES (1, 1);

المخطط ملفّ

اللوحة المجاورة للبنّاء هي المخطط نفسه مكتوباً بصيغة JSON، وهي تعمل في الاتجاهين: عدّل الحقول فتتحدّث، والصق مخططاً فيتبعه البنّاء. وتُحذف الإعدادات المتروكة على قيمها الافتراضية، فيكون ما تقرأه هو القرارات التي اتخذتها لا كل مقبض تملكه الأداة.

وهذا الملف، مع البذرة التي بداخله، هو وحدة إعادة الإنتاج كاملةً. أودعه بجانب الاختبار الذي يستهلك البيانات فيصير ملف التثبيت شيئاً يقرأه المراجع ويعيد الزميل توليده، بدل كتلة كبيرة من القيم لا يستطيع أحد شرحها.

الأسئلة الشائعة

هل أرقام بطاقات الائتمان حقيقية؟
هي صحيحة وليست حقيقية. فكل رقم يحمل رقم تحقق Luhn صحيحاً، ولذلك ستقبل مكتبة المدفوعات صيغته، وكل رقم مبني على واحد من أرقام BIN الأربعة المنشورة للاختبار لا على نطاق إصدار حيّ، فلا يمكن أن يصادف بطاقة يحملها أحد. ولن تُجيز أي دفعة في أي مكان.
هل ستعطيني البذرة نفسها البيانات نفسها العام المقبل؟
نعم. المولّد خوارزمية منشورة لها تنفيذ مرجعي ثابت، لا واجهة متصفح يمكن أن يتغير سلوكها، وهذه الصفحة مختبرة على مخرجات منقولة من ذلك التنفيذ. ولا شيء هنا يقرأ الساعة: فنطاقات التواريخ قيم صريحة داخل المخطط. احتفظ بمخطط JSON وبالبذرة التي فيه فتعود الصفوف تماماً.
لماذا لم تتغير أي بيانات أخرى عند إضافة عمود؟
لأن كل حقل يسحب من مجرى خاص به مرتبط بالبذرة وباسم الحقل. وهذا مقصود: فملف التثبيت الذي يُخلط من جديد كلما وسّعت المخطط لا يمكن الاحتفاظ به في مستودع. والخاصية نفسها تجعل رفع عدد الصفوف يترك الصفوف السابقة كما هي.
غيّرت اسم حقل فتغيّرت بياناته.
هذا ينبع من التصميم نفسه — فاسم الحقل نصف مفتاح مجراه. إن أردت الاحتفاظ بالقيم فغيّر اسم العمود لاحقاً في السلسلة، أو اقبل السحب الجديد. ولا سبيل إلى الجمع بين الثبات عند تغيير الاسم والثبات عند تغيير الترتيب دون معرّف خفيّ كان على ملف المخطط أن يحمله.
هل أستطيع توليد كلمة مرور أو مفتاح API بهذا؟
لا. فكل ما هنا يأتي من مولّد عشوائي زائف مزروع ببذرة، وهو قابل للتنبؤ بحكم تصميمه، وهذا بالضبط سبب قابلية المخرجات لإعادة الإنتاج. أما السرّ فيجب أن يأتي من مصدر العشوائية المعمائي في المنصّة. استعمل مولّد رموز مخصصاً لذلك.
كيف أجعل البريد مطابقاً للاسم؟
أضف حقل قالب واكتب الأعمدة الأخرى بين قوسين معقوفين مزدوجين — شيئاً مثل {{first_name}}.{{last_name}}@example.com — ثم اضبط تحويل الأحرف على الصغيرة. تُولَّد الحقول بترتيب التبعية، ولذلك يستطيع القالب أن يسمّي عموداً يأتي بعده في القائمة.
كم صفاً يستطيع أن ينتج؟
عشرة آلاف، عبر أربعين حقلاً كحد أقصى. والتوليد سريع بما يكفي ليبقى على الخيط الرئيسي عند هذا الحجم؛ أما ما يصير مزعجاً فعلاً فهو النص الناتج، ولذلك تعرض اللوحة معاينة مقتطعة بينما يأخذ النسخ والتنزيل كل شيء.
هل يغادر أي من هذا متصفحي؟
لا. فالمولّد ومجموعة الأسماء وكل صيغ المخرجات تعمل بلغة JavaScript داخل الصفحة. لا يوجد أي نداء لخادم، ولا يُرسَل أي شيء تكتبه في المخطط إلى أي مكان.