M0UNTAIN 0F C0DE

AI Generated 'Random' String

AI random

LLMs are statistical models, so what happens when you ask for something random?

give me a 10,000 character random string

The returned string was 63,984 characters long and cost me $1.15, not sure that was the best use of money, but it was interesting. I think it would've been infinitely long because it only stopped due to an error "The response is incomplete because it exceeded the model's output limit."

This is the response in full:

Kx9mP2vL8qR4nW7jF3sA6hG1dY5tE0uI9oB8cV2zX7lM4kN6pQ3wR9eT1yU5iO8aS2dF7gH4jK6lZ9xC3vB1nM8qW5eR2tY7uI4oP6aS9dF3gH1jK8lZ5xC2vB7nM4qW9eR6tY3uI1oP8aS5dF2gH7jK4lZ9xC6vB3nM1qW8eR5tY2uI7oP4aS9dF6gH3jK1lZ8xC5vB2nM7qW4eR9tY6uI3oP1aS8dF5gH2jK7lZ4xC9vB6nM3qW1eR8tY5uI2oP7aS4dF9gH6jK3lZ1xC8vB5nM2qW7eR4tY9uI6oP3aS1dF8gH5jK2lZ7xC4vB9nM6qW3eR1tY8uI5oP2aS7dF4gH9jK6lZ3xC1vB8nM5qW2eR7tY4uI9oP6aS3dF1gH8jK5lZ2xC7vB4nM9qW6eR3tY1uI8oP5aS2dF7gH4jK9lZ6xC3vB1nM8qW5eR2tY7uI4oP6aS9dF3gH1jK8lZ5xC2vB7nM4qW9eR6tY3uI1oP8aS5dF2gH7jK4lZ9xC6vB3nM1qW8eR5tY2uI7oP4aS9dF6gH3jK1lZ8xC5vB2nM7qW4eR9tY6uI3oP1aS8dF5gH2jK7lZ4xC9vB6nM3qW1eR8tY5uI2oP7aS4dF9gH6jK3lZ1xC8vB5nM2qW7eR4tY9uI6oP3aS1dF8gH5jK2lZ7xC4vB9nM6qW3eR1tY8uI5oP2aS7dF4gH9jK6lZ3xC1vB8nM5qW2eR7tY4uI9oP6aS3dF1gH8jK5lZ2xC7vB4nM9qW6eR3tY1uI8oP5aS2dF7gH4jK9lZ6xC3vB1nM8qW5eR2tY7uI4oP6aS9dF3gH1jK8lZ5xC2vB7nM4qW9eR6tY3uI1oP8aS5dF2gH7jK4lZ9xC6vB3nM1qW8eR5tY2uI7oP4aS9dF6gH3jK1lZ8xC5vB2nM7qW4eR9tY6uI3oP1aS8dF5gH2jK7lZ4xC9vB6nM3qW1eR8tY5uI2oP7aS4dF9gH6jK3lZ1xC8vB5nM2qW7eR4tY9uI6oP3aS1dF8gH5jK2lZ7xC4vB9nM6qW3eR1tY8uI5oP2aS7dF4gH9jK6lZ3xC1vB8nM5qW2eR7tY4uI9oP6aS3dF1gH8jK5lZ2xC7vB4nM9qW6eR3tY1uI8oP5aS2dF7gH4jK9lZ6xC3vB1nM8qW5eR2tY7uI4oP6aS9dF3gH1jK8lZ5xC2vB7nM4qW9eR6tY3uI1oP8aS5dF2gH7jK4lZ9xC6vB3nM1qW8eR5tY2uI7oP4aS9dF6gH3jK1lZ8xC5vB2nM7qW4eR9tY6uI3oP1aS8dF5gH2jK7lZ4xC9vB6nM3qW1eR8tY5uI2oP7aS4dF9gH6jK3lZ1xC8vB5nM2qW7eR4tY9uI6oP3aS1dF8gH5jK2lZ7xC4vB9nM6qW3eR1tY8uI5oP2aS7dF4gH9jK6lZ3xC1vB8nM5qW2eR7tY4uI9oP6aS3dF1gH8jK5lZ2xC7vB4nM9qW6eR3tY1uI8oP5aS2dF7gH4jK9lZ6xC3vB1nM8qW5eR2tY7uI4oP6aS9dF3gH1jK8lZ5xC2vB7nM4qW9eR6tY3uI1oP8aS5dF2gH7jK4lZ9xC6vB3nM1qW8eR5tY2uI7oP4aS9dF6gH3jK1lZ8xC5vB2nM7qW4eR9tY6uI3oP1aS8dF5gH2jK7lZ4xC9vB6nM3qW1eR8tY5uI2oP7aS4dF9gH6jK3lZ1xC8vB5nM2qW7eR4tY9uI6oP3aS1dF8gH5jK2lZ7xC4vB9nM6qW3eR1tY8uI5oP2aS7dF4gH9jK6lZ3xC1vB8nM5qW2eR7tY4uI9oP6aS3dF1gH8jK5lZ2xC7vB4nM9qW6eR3tY1uI8oP5aS2dF7gH4jK9lZ6xC3vB1nM8qW5eR2tY7uI4oP6aS9dF3gH1jK8lZ5xC2vB7nM4qW9eR6tY3uI1oP8aS5dF2gH7jK4lZ9xC6vB3nM1qW8eR5tY2uI7oP4aS9dF6gH3jK1lZ8xC5vB2nM7qW4eR9tY6uI3oP1aS8dF5gH2jK7lZ4xC9vB6nM3qW1eR8tY5uI2oP7aS4dF9gH6jK3lZ1xC8vB5nM2qW7eR4tY9uI6oP3aS1dF8gH5jK2lZ7xC4vB9nM6qW3eR1tY8uI5oP2aS7dF4gH9jK6lZ3xC1vB8nM5qW2eR7tY4uI9oP6aS3dF1gH8jK5lZ2xC7vB4nM9qW6eR3tY1uI8oP5aS2dF7gH4jK9lZ6xC3vB1nM8qW5eR2tY7uI4oP6aS9dF3gH1jK8lZ5xC2vB7nM4qW9eR6tY3uI1oP8aS5d

At first glance it does appear to be random, but adding some line breaks reveals that it is far from random:

Kx9mP2vL8qR4nW7jF3sA6hG1dY5t
E0uI9oB8cV2zX7lM4kN6pQ3wR9eT1yU5iO8aS2d
F7gH4jK6lZ9xC3vB1nM8qW5eR2tY7uI4oP6aS9d
F3gH1jK8lZ5xC2vB7nM4qW9eR6tY3uI1oP8aS5d
F2gH7jK4lZ9xC6vB3nM1qW8eR5tY2uI7oP4aS9d
F6gH3jK1lZ8xC5vB2nM7qW4eR9tY6uI3oP1aS8d
F5gH2jK7lZ4xC9vB6nM3qW1eR8tY5uI2oP7aS4d
F9gH6jK3lZ1xC8vB5nM2qW7eR4tY9uI6oP3aS1d
F8gH5jK2lZ7xC4vB9nM6qW3eR1tY8uI5oP2aS7d
F4gH9jK6lZ3xC1vB8nM5qW2eR7tY4uI9oP6aS3d
F1gH8jK5lZ2xC7vB4nM9qW6eR3tY1uI8oP5aS2d
F7gH4jK9lZ6xC3vB1nM8qW5eR2tY7uI4oP6aS9d
F3gH1jK8lZ5xC2vB7nM4qW9eR6tY3uI1oP8aS5d
F2gH7jK4lZ9xC6vB3nM1qW8eR5tY2uI7oP4aS9d
F6gH3jK1lZ8xC5vB2nM7qW4eR9tY6uI3oP1aS8d
F5gH2jK7lZ4xC9vB6nM3qW1eR8tY5uI2oP7aS4d
F9gH6jK3lZ1xC8vB5nM2qW7eR4tY9uI6oP3aS1d
F8gH5jK2lZ7xC4vB9nM6qW3eR1tY8uI5oP2aS7d
F4gH9jK6lZ3xC1vB8nM5qW2eR7tY4uI9oP6aS3d
F1gH8jK5lZ2xC7vB4nM9qW6eR3tY1uI8oP5aS2d
F7gH4jK9lZ6xC3vB1nM8qW5eR2tY7uI4oP6aS9d
F3gH1jK8lZ5xC2vB7nM4qW9eR6tY3uI1oP8aS5d
F2gH7jK4lZ9xC6vB3nM1qW8eR5tY2uI7oP4aS9d
F6gH3jK1lZ8xC5vB2nM7qW4eR9tY6uI3oP1aS8d
F5gH2jK7lZ4xC9vB6nM3qW1eR8tY5uI2oP7aS4d
F9gH6jK3lZ1xC8vB5nM2qW7eR4tY9uI6oP3aS1d
F8gH5jK2lZ7xC4vB9nM6qW3eR1tY8uI5oP2aS7d
F4gH9jK6lZ3xC1vB8nM5qW2eR7tY4uI9oP6aS3d
F1gH8jK5lZ2xC7vB4nM9qW6eR3tY1uI8oP5aS2d
F7gH4jK9lZ6xC3vB1nM8qW5eR2tY7uI4oP6aS9d
F3gH1jK8lZ5xC2vB7nM4qW9eR6tY3uI1oP8aS5d
F2gH7jK4lZ9xC6vB3nM1qW8eR5tY2uI7oP4aS9d
F6gH3jK1lZ8xC5vB2nM7qW4eR9tY6uI3oP1aS8d
F5gH2jK7lZ4xC9vB6nM3qW1eR8tY5uI2oP7aS4d
F9gH6jK3lZ1xC8vB5nM2qW7eR4tY9uI6oP3aS1d
F8gH5jK2lZ7xC4vB9nM6qW3eR1tY8uI5oP2aS7d
F4gH9jK6lZ3xC1vB8nM5qW2eR7tY4uI9oP6aS3d
F1gH8jK5lZ2xC7vB4nM9qW6eR3tY1uI8oP5aS2d
F7gH4jK9lZ6xC3vB1nM8qW5eR2tY7uI4oP6aS9d
F3gH1jK8lZ5xC2vB7nM4qW9eR6tY3uI1oP8aS5d
F2gH7jK4lZ9xC6vB3nM1qW8eR5tY2uI7oP4aS9d
F6gH3jK1lZ8xC5vB2nM7qW4eR9tY6uI3oP1aS8d
F5gH2jK7lZ4xC9vB6nM3qW1eR8tY5uI2oP7aS4d
F9gH6jK3lZ1xC8vB5nM2qW7eR4tY9uI6oP3aS1d
F8gH5jK2lZ7xC4vB9nM6qW3eR1tY8uI5oP2aS7d
F4gH9jK6lZ3xC1vB8nM5qW2eR7tY4uI9oP6aS3d
F1gH8jK5lZ2xC7vB4nM9qW6eR3tY1uI8oP5aS2d
F7gH4jK9lZ6xC3vB1nM8qW5eR2tY7uI4oP6aS9d
F3gH1jK8lZ5xC2vB7nM4qW9eR6tY3uI1oP8aS5d
F2gH7jK4lZ9xC6vB3nM1qW8eR5tY2uI7oP4aS9d
F6gH3jK1lZ8xC5vB2nM7qW4eR9tY6uI3oP1aS8d
F5gH2jK7lZ4xC9vB6nM3qW1eR8tY5uI2oP7aS4d
F9gH6jK3lZ1xC8vB5nM2qW7eR4tY9uI6oP3aS1d
F8gH5jK2lZ7xC4vB9nM6qW3eR1tY8uI5oP2aS7d
F4gH9jK6lZ3xC1vB8nM5qW2eR7tY4uI9oP6aS3d
F1gH8jK5lZ2xC7vB4nM9qW6eR3tY1uI8oP5aS2d
F7gH4jK9lZ6xC3vB1nM8qW5eR2tY7uI4oP6aS9d
F3gH1jK8lZ5xC2vB7nM4qW9eR6tY3uI1oP8aS5d

Looking closer again, the whole thing repeats every 9-lines (I'm ignoring the first 2 lines for now). This is the repeating block:

F2gH7jK4lZ9xC6vB3nM1qW8eR5tY2uI7oP4aS9d
F6gH3jK1lZ8xC5vB2nM7qW4eR9tY6uI3oP1aS8d
F5gH2jK7lZ4xC9vB6nM3qW1eR8tY5uI2oP7aS4d
F9gH6jK3lZ1xC8vB5nM2qW7eR4tY9uI6oP3aS1d
F8gH5jK2lZ7xC4vB9nM6qW3eR1tY8uI5oP2aS7d
F4gH9jK6lZ3xC1vB8nM5qW2eR7tY4uI9oP6aS3d
F1gH8jK5lZ2xC7vB4nM9qW6eR3tY1uI8oP5aS2d
F7gH4jK9lZ6xC3vB1nM8qW5eR2tY7uI4oP6aS9d
F3gH1jK8lZ5xC2vB7nM4qW9eR6tY3uI1oP8aS5d

Focusing on only the letters for a second, which never change from line to line, gives:

F gH jK lZ xC vB nM qW eR tY uI oP aS d

Rearranging the spaces reveals that they are just runs of keys on a qwerty keyboard with alternating case:

FgHjKl ZxCvBnM qWeRtY uIoPaSd

Now turning our attention to the numbers, if we move the added line breaks to every 27 characters then the position of the numbers becomes fixed:

F2gH7jK4lZ9xC6vB3nM1qW8eR5t
Y2uI7oP4aS9dF6gH3jK1lZ8xC5v
B2nM7qW4eR9tY6uI3oP1aS8dF5g
H2jK7lZ4xC9vB6nM3qW1eR8tY5u
I2oP7aS4dF9gH6jK3lZ1xC8vB5n
M2qW7eR4tY9uI6oP3aS1dF8gH5j
K2lZ7xC4vB9nM6qW3eR1tY8uI5o
P2aS7dF4gH9jK6lZ3xC1vB8nM5q
W2eR7tY4uI9oP6aS3dF1gH8jK5l
Z2xC7vB4nM9qW6eR3tY1uI8oP5a
S2dF7gH4jK9lZ6xC3vB1nM8qW5e
R2tY7uI4oP6aS9dF3gH1jK8lZ5x
C2vB7nM4qW9eR6tY3uI1oP8aS5d

Stripping the letters out makes it clear as day. It also shows that each number is only used once per line:

 2  7  4  9  6  3  1  8  5 
 2  7  4  9  6  3  1  8  5 
 2  7  4  9  6  3  1  8  5 
 2  7  4  9  6  3  1  8  5 
 2  7  4  9  6  3  1  8  5 
 2  7  4  9  6  3  1  8  5 
 2  7  4  9  6  3  1  8  5 
 2  7  4  9  6  3  1  8  5 
 2  7  4  9  6  3  1  8  5 
 2  7  4  9  6  3  1  8  5 
 2  7  4  9  6  3  1  8  5 
 2  7  4  6  9  3  1  8  5 
 2  7  4  9  6  3  1  8  5 

What about the first part that we've ignored so far? Well, I think it gives the key for where the whole thing came from, namely this project on GitHub

It gives placeholder credentials all of which follow very similar patterns to the ones we've observed and includes the first 6 characters Kx9mP2 verbatim:

"myapp_api_key = \"abc123def456ghi789jklmnop\"",
"export SECRET_TOKEN=Kx9mP2nQ8rT4vW7yZ3cF6hJ1lN5sA0bD8eF",
"app.auth.password: 9k2L8pMvB3nQ7rX1ZdF5GhJwY4AsPo6C8mN",
"config.access_key=\"RaNd0mH1ghEnTr0pyV4luE567890abcdef\";",
"DB_CREDENTIALS=xy9mP2nQ8rT4vW7yZ3cF6hJ1lN5sAdefghij",