Developer Runs locally Ready to use Built-in examples No tracking

Fake Data Generator

Generate fake Chinese names, masked phone numbers, checksum-valid fake ID numbers, addresses and emails for development and testing. Up to 100 rows, copy as TSV. Runs locally.

Development and testing need rows of data that look real without belonging to anyone: layout work wants to see how long a name runs, form validation wants identifiers that pass the format check, an exported report needs enough rows to be worth looking at. This tool generates such data in the browser, without a server and without storing anything.

Two deliberate limits in the rules. Phone numbers have the middle four digits masked (138****1234), keeping the format recognisable while making sure no dialable number is produced. ID numbers use example region codes with random sequence digits, and only the check digit follows the GB 11643 algorithm, so they point at no real document. That makes the output suitable for test environments and unsuitable as data in a live release.

How to use

  1. Choose the data types to generate.
  2. Set the number of rows, up to 100.
  3. Copy the result as TSV, or generate again.
  4. Keep the output to test environments — the identifiers are synthetic.

How it works

How generation works

Choose the count (1-100) and field combination, then press generate. Names combine common family and given names; phone numbers use public number prefixes; ID numbers complete their check digit per GB 11643 - format-valid but random, matching no real certificate.

Why phone numbers are masked

Phone numbers mask the middle four digits by default (138****1234): enough format for UI testing, yet not a dialable number. ID numbers use a fixed sample region code with a random sequence - again never a real person.

Reading and copying results

Results appear as a table; copy-all yields tab-separated text (header row first) that pastes straight into Excel, WPS or database tools. Changing parameters does not re-roll automatically - press generate again for fresh data.

Code example

SQL Generating fake rows for a test table (MySQL)

-- Use information_schema to produce a sequence, then insert 100 test orders
INSERT INTO orders (order_no, user_name, phone, amount, created_at)
SELECT
  CONCAT('TEST', LPAD(seq, 8, '0')),
  ELT(1 + FLOOR(RAND() * 5), 'Smith', 'Johnson', 'Brown', 'Davis', 'Wilson'),
  CONCAT('555', LPAD(FLOOR(RAND() * 10000), 4, '0'), '****'),
  ROUND(RAND() * 1000, 2),
  NOW() - INTERVAL FLOOR(RAND() * 365) DAY
FROM (
  SELECT @row := @row + 1 AS seq
  FROM information_schema.columns a, information_schema.columns b, (SELECT @row := 0) t
  LIMIT 100
) seq;

JavaScript Mock list in the front end

const surnames = ['Smith', 'Johnson', 'Brown', 'Davis', 'Wilson'];
const given = ['James', 'Emma', 'Olivia', 'Liam', 'Noah'];
const pick = (a) => a[Math.floor(Math.random() * a.length)];

const makeUser = (i) => ({
  id: i + 1,
  name: pick(surnames) + pick(given),
  phone: `555${String(Math.floor(Math.random() * 1e4)).padStart(4, '0')}****`,
  amount: Number((Math.random() * 1000).toFixed(2)),
});

console.table(Array.from({ length: 20 }, (_, i) => makeUser(i)));

FAQ

Are the generated ID numbers real?

No. They are assembled from random numbers with a standard-compliant check digit - format-valid but with a random region code, birth date and sequence, matching no real certificate or person. They serve form validation and database seeding in development only.

Why are the middle four digits of phone numbers stars?

Deliberate masking: 138****1234 keeps the prefix and tail format for UI display, format validation and storage logic tests, but cannot produce a dialable number - preventing the generator from feeding harassment or registration abuse. Replace the stars yourself if you need the full format.

Is the generated data saved or uploaded?

No. Everything is generated instantly with random numbers in the browser - never through a server, never written to disk, gone on refresh. Clipboard contents are yours to manage.

How many records per run?

100 at most. The cap keeps rendering smooth and copy sizes manageable; for larger volumes, generate programmatically with Faker or mockjs and load the results into your database.

How is the ID check digit computed?

The first 17 digits multiply by weights 7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2; the sum modulo 11 maps through 1 0 X 9 8 7 6 5 4 3 2 to the check digit. Generated numbers follow this algorithm exactly, so they pass routine format validation.

Can this be used in production?

No. Fake data belongs in development, testing and demo environments. Production user data must come from real input - mixing fake records pollutes the database, and fake ID numbers fail real-name verification outright.

Will the generated mailboxes receive mail?

No. Addresses combine random names with reserved example domains like example.com and test.com, which offer no mailbox service. For testing mail flows, use local catchers like MailHog or Mailtrap.