Skip to content(if available)orjump to list(if available)

SCREAM CIPHER ("ǠĂȦẶAẦ ĂǍÄẴẶȦ")

Retr0id

There are also a little over 256 unicode Combining Marks that each have a 2-byte UTF-8 encoding. I picked a set of them, defining an encoding I call zalgo256:

https://gist.github.com/DavidBuchanan314/07da147445a90f7a049...

Since an arbitrarily tall stack of combining characters still counts as one grapheme cluster, if some application limits string length by counting grapheme clusters then you can stuff an unlimited amount of data in there, with "only" 2x overhead in the byte representation.

Unfortunately HN filters some of the codepoints so I can't demonstrate here. Since I chose "A" as the base character which the diacritics are stacked on, it has a similar aesthetic to the SCREAM cipher although a little more zalgo-y.

junon

A demonstration as a comment on the gist would probably work! I'd love to see that

Retr0id

Good point, added

sixhobbits

I did something similar a while back but using all the invisible characters to encode extra data into telegram messages for metadata storage

https://github.com/sixhobbits/unisteg

franga2000

I was very confused why this would be useful for Telegram messages, but the Why? part of the readme makes perfect sense. Great workaround for a stupid limitation!

fainpul

One could use emojis instead, then the message could be hidden in plain sight in places where emoji-spam is common.

cluckindan

Emojis have a high overhead, a single emoji is typically 4 bytes but may be up to 35 bytes.

foofoo12

Yikes! Imagine if people were to start sending photos and videos to each other!

rawling

PenguinRevolver

Oh god, now we're gonna have two different standards for a scream cypher https://xkcd.com/927/

codeulike

Ah its from XKCD (feb 2025), bit odd of the OP not to mention that

codeulike

Ảặậậ ạẵaạǡ ȧặaậậā ǎẩạặȧặǡạǎẩẳ, a áǎạ ầẫȧặ ằȁẩ ạẫ ȁǡặ ạẵaẩ ȦẪẠ13

dsjoerg

Ǎ ăẫẩǡǎắặȧ ǎạ a ăẵaậậặẩẳặ áặằẫȧặ ạẵặ ảẵẫậặ ẵȁầaẩ ȧaăặ! Aẩắ Ǎ aǎẩ'ạ ẳẫẩẩa ậẫǡặ.....

DonHopkins

ẰǍȦǠẠ ÄẪǠẠ

codeulike

Ằậaẳẳặắ

blueflow

... in the same sense that ROT13 or base64 would be a cipher.

hennell

Rot 13 is a cipher. It's a substitution cipher, and more specifically a shift cypher or Caesar cipher. It's not a secure cipher but it is one.

Base64 is an encoding. It's an algorithm, no attempt at secrecy, thus not a cipher.

cluckindan

And thus we arrive at SCREAM64 encoding, base64 in scream cipher.

foofoo12

Sweet Lord Jesus.

blueflow

And what do you think is the algorithm from the article? Looks awfully similar to base64 to me, except its lacking the bit-shifts. Both use a lookup table like that.

jeroenhd

The original Caesar cipher supposedly also had a constant offset, yet it's still considered a cipher.

A bad substitution cipher is still a cipher. Just one you shouldn't use for anything important.

andy99

JdeBP

… and no, since neither the enciphering nor the deciphering do a 1:1 mapping for all possible input code points.

amenhotep

That's not a requirement. Pigpen is a substitution cipher.

blueflow

First sentence:

> with the help of a key

So, where is the key?

bradrn

In the code in this article, the key is the mapping stored in ‘CIPHER’.

shakna

The key is the data table, representing which each character encodes to or from.

JdeBP

First, second, and third statements of the provided source code.

personalcompute

Ăặȧạaǎẩậā ȧẫạ13, áaǡặ64, aẩắ ạẵǎǡ ẩặả ǡăȧặaầ ăǎäẵặȧ aȧặ aậậ ǎẩǡặăȁȧặ, áȁạ ạẵặā ắẫ ầặặạ ạẵặ ạặăẵẩǎăaậ ắặằǎẩǎạǎẫẩ ẫằ a ăǎäẵặȧ.

ginko

Now pack even more info in each character with Zalgo text.

permo-w

am I unusual in not really seeing the "creepiness" of zalgo text?

faeyanpiraat

Maybe you missed this piece of the internet history: https://stackoverflow.com/a/1732454

lambdaone

Think of it as representing something like the letters actively 'creeping' and giving off tendrils of darkness. Does this help?

Retr0id

It's not inherently creepy but often symbolic of corruption or someone talking in a raspy/synthetic "evil overlord" kind of voice.

jomarry

[dead]

jomarry

[dead]

null

[deleted]