Cannot Be Done
I'm sorry, but this “problem” is truly impossible to solve. Consider these:
- ꜰᴜᴄᴋ is U+A730.1D1C.1D04.1D0B, "\N{LATIN LETTER SMALL CAPITAL F}\N{LATIN LETTER SMALL CAPITAL U}\N{LATIN LETTER SMALL CAPITAL C}\N{LATIN LETTER SMALL CAPITAL K}"
- ᶠᵘᶜᵏ is U+1DA0.1D58.1D9C.1D4F, "\N{MODIFIER LETTER SMALL F}\N{MODIFIER LETTER SMALL U}\N{MODIFIER LETTER SMALL C}\N{MODIFIER LETTER SMALL K}"
- is U+1D4BB.1D4CA.1D4B8.1D4C0, "\N{MATHEMATICAL SCRIPT SMALL F}\N{MATHEMATICAL SCRIPT SMALL U}\N{MATHEMATICAL SCRIPT SMALL C}\N{MATHEMATICAL SCRIPT SMALL K}"
- is U+1D58B.1D59A.1D588.1D590, "\N{MATHEMATICAL BOLD FRAKTUR SMALL F}\N{MATHEMATICAL BOLD FRAKTUR SMALL U}\N{MATHEMATICAL BOLD FRAKTUR SMALL C}\N{MATHEMATICAL BOLD FRAKTUR SMALL K}"
- is U+1D4D5.1D4B0.1D49E.1D4A6, "\N{MATHEMATICAL BOLD SCRIPT CAPITAL F}\N{MATHEMATICAL SCRIPT CAPITAL U}\N{MATHEMATICAL SCRIPT CAPITAL C}\N{MATHEMATICAL SCRIPT CAPITAL K}"
- ⓕ ⓤ ⓒ ⓚ is U+24D5.24E4.24D2.24DA, "\N{CIRCLED LATIN SMALL LETTER F}\N{CIRCLED LATIN SMALL LETTER U}\N{CIRCLED LATIN SMALL LETTER C}\N{CIRCLED LATIN SMALL LETTER K}"
- Γ̵ᏟᏦ is U+393.335.10335.13DF.13E6, "\N{GREEK CAPITAL LETTER GAMMA}\N{COMBINING SHORT STROKE OVERLAY}\N{GOTHIC LETTER QAIRTHRA}\N{CHEROKEE LETTER TLI}\N{CHEROKEE LETTER TSO}"
- ƒμɕѤ is U+192.3BC.255.464, "\N{LATIN SMALL LETTER F WITH HOOK}\N{GREEK SMALL LETTER MU}\N{LATIN SMALL LETTER C WITH CURL}\N{CYRILLIC CAPITAL LETTER IOTIFIED E}"
- Г̵ЦСК is U+413.335.426.421.41A, "\N{CYRILLIC CAPITAL LETTER GHE}\N{COMBINING SHORT STROKE OVERLAY}\N{CYRILLIC CAPITAL LETTER TSE}\N{CYRILLIC CAPITAL LETTER ES}\N{CYRILLIC CAPITAL LETTER KA}"
- ғᵾȼƙ is U+493.1D7E.23C.199, "\N{CYRILLIC SMALL LETTER GHE WITH STROKE}\N{LATIN SMALL CAPITAL LETTER U WITH STROKE}\N{LATIN SMALL LETTER C WITH STROKE}\N{LATIN SMALL LETTER K WITH HOOK}"
- ϜυϚΚ is U+3DC.3C5.3DA.39A, "\N{GREEK LETTER DIGAMMA}\N{GREEK SMALL LETTER UPSILON}\N{GREEK LETTER STIGMA}\N{GREEK CAPITAL LETTER KAPPA}"
- ЖↃUᆿ is U+416.2183.55.11BF, "\N{CYRILLIC CAPITAL LETTER ZHE}\N{ROMAN NUMERAL REVERSED ONE HUNDRED}\N{LATIN CAPITAL LETTER U}\N{HANGUL JONGSEONG KHIEUKH}"
- ʞɔnɟ is U+29E.254.6E.25F, "\N{LATIN SMALL LETTER TURNED K}\N{LATIN SMALL LETTER OPEN O}\N{LATIN SMALL LETTER N}\N{LATIN SMALL LETTER DOTLESS J WITH STROKE}"
It Gets Worse
And if you think those are easy, just try coping with all of these:
00 Ↄ ʞ, F ᵾ ⒞ K, K ⓒ Ц ⒡ , K , ғ ∞ Ϛ k, f Ꮯ K, ⓕ oo ɔ ⓚ , ɟ ⒰ ¢ K, ȼ , Ù ȼ ⒦ ,
f ⒞ ƙ, F ᶜ , F ∞ Ж , @ Ꮯ , ɟ ᵘ , F Ц ¢ , f oo Ꮯ ʞ, oo ¢ Ж , υ ᶜ Κ , Ϝ ú * ʞ,
ꜰ c K, ƒ ᵘ ȼ k, U ȼ , Ж ɔ μ ƒ, F ⓤ ⒞ k, ƒ C ƙ, ғ 00 ɔ Ѥ, ƒ U c ᴋ, ∞ Ꮶ ⓒ , ꜰ ᴄ ⒦ ,
⒰ Ꮯ Ѥ, ꜰ ᴜ ⒦ , F ʞ, f 00 , ғ u С K, f ɔ Κ , f μ Ↄ K, ɟ c ʞ, f Ↄ , F μ ¢ ,
ᆿ ᴄ ⒦ , Κ ¢ oo ɟ, ᶠ μ ᶜ Ѥ, ᶠ ⓤ Ꮯ Ж , ⒞ ᵘ F, F @ C ⓚ , Ѥ ᴄ u F, ⒡ ᵾ C k, ƒ μ ᶜ ᴋ, F C ,
f ᵘ ¢ ᵏ, ᆿ 00 , ꜰ υ ȼ K, Ϝ ȼ К , oo ɕ ᴋ, ғ Ꮯ ᴋ, ꜰ n K, ꜰ μ Ϛ К , F ∞ ȼ , ⒡ Ↄ Κ ,
ƒ ⒞ , ᶠ U C Ꮶ, ᶠ υ Ↄ ƙ, C , Ϝ U Ѥ, Ϝ U Ↄ , U ⒞ ᵏ, F @ C К , ғ ᴜ ᴋ, ⒡ U К ,
ɟ U * ᵏ, Ц c Κ , ғ U Ↄ , ƒ ⒰ ᵏ, ғ * K, n ⓚ , ᶠ 00 С К , Ц k, ƙ c Ц ᶠ, ⒰ Ѥ ,
ꜰ ǔ ᴄ ⒦ , F Ↄ , υ ꜰ, * ᵏ, 00 Ж , Κ C , ᶠ U С K, ꜰ Κ , ɟ U ᶜ ⓚ , ∞ ȼ ᴋ,
ƒ U К ć, ƒ υ ȼ ᴋ, ⒡ ∞ Ж ɕ, ᵘ ᵏ, F U Ϛ ʞ, ⓕ Ж , Ↄ, Ϝ n * K, oo c ⓚ , ƒ U ¢ ʞ,
ƒ u C ʞ, K ¢ μ ⒡ , ɟ ⒰ K ɔ, F U c k, F Ц ⓚ , U ᴋ ɔ, Ꮯ , ⓚ , ⓕ C К , ɟ ᵾ * ⒦ ,
ᶠ ᵘ ⒞ ⒦ , ƒ ⒰ ᴄ ᵏ, ⒡ ⒰ С K, ⒰ * ᴋ, ᆿ ∞ ʞ ɕ, n * Ѥ, Ϝ μ ᴄ , k ć ᵘ ƒ, ᵘ ɕ , ɟ Ц Ꮶ ᴄ, ᵾ ⒞ ᵏ,
ғ ᵘ ᵏ, ᵾ * Ѥ, F Ꮯ K, ғ ⓤ ᴋ, ƒ u ɕ , ƙ c ⒰ F, ⓒ Κ , K ᶜ Ц , ɟ c ⒦ , ƒ @ c Κ ,
Ϝ Ц ȼ Ḱ, ⒡ ᵘ ⒦ , ɟ ᵾ Ѥ ¢, F Ↄ , Ϝ ᴜ , Ϝ ⒞ , U Ꮯ ʞ, ƒ υ Ꮯ ᵏ, F ᵾ Ꮯ Κ , Ϝ ᵘ ⓒ ʞ,
ⓤ ᶜ ƙ, ᆿ ⒞ , f Ↄ Ѥ, U K, Ϝ ᴜ * , ꜰ @ ⓒ ʞ, ƒ u ⓒ , f U ⒞ k, 00 ᴄ Ѥ, υ С K,
F ᴜ ᴄ , ⓕ oo Ↄ ⓚ , ⒡ ᵘ ɕ , ⓕ υ ᴄ Κ , ᆿ U Ꮯ , Ꮯ Ꮶ, Ć , Ц ɕ К , f @ Ↄ ⓚ , ᴋ ᶜ U ꜰ,
ᴜ c ⒦ , F ᵘ C , 00 Ꮶ, ꜰ 00 К , Ϝ Ϛ ᵏ, F c Ѥ, ⓕ oo Ↄ K, f ᵾ С ᵏ, ⓕ Ц c , c Ж ,
ⓕ ƙ, ⓚ C n ғ, ɟ U ȼ , 00 K ȼ, ᴄ , Ц C , Ц ¢ , Ϝ ᵘ c k, ⒡ ¢ k, ƒ ⓤ ⓚ Ↄ, k,
ƒ U Ↄ K, ᴄ Ꮶ, ᆿ ⓤ ⒦ , Ж ɔ U , ƒ υ * ᴋ, ƒ k, U С ⒦ , C Ж , ƒ μ Ꮯ ƙ, ⓕ n ᴄ ⒦ ,
ⓕ μ ⓒ Ж , ⒡ 00 ɕ , ᴜ ᶜ , ᆿ Ù Ж , ⒦ ȼ U , k C ⓤ ᆿ, Ϝ n ȼ ᵏ, ᴋ ȼ ᵾ ɟ, F ȼ Ѥ, ғ ⒰ ȼ ,
f U Ж ⒞ , F ῠ ᵏ, F u Κ , F 00 ȼ , ꜰ μ Ϛ Ꮶ, ᆿ K, ⒡ n Ↄ Ж , F @ ƙ, ᶠ ὺ К ,
U C ᵏ, F U ⒦ , 00 Ↄ , ᶠ c К , ғ ⓤ , ⓤ Κ , U Ж , ⒡ ɔ Ꮶ, ⓚ ɔ f, U C K,
F @ C Ѥ, ғ ᴜ С k, ɟ u * ƙ, ⓕ ᵾ ɕ , 00 ȼ K, υ , ƒ ⒰ * ʞ, ⓕ U Ↄ Ж , ꜰ U ȼ ƙ, ⒡ u С ⒦ ,
ꜰ ᴜ Ќ, ᆿ μ ⒦ , ⓕ @ ᴄ К , ᶠ υ ɔ ᵏ, ƙ Ↄ oo ꜰ, F ᴜ , ⒰ C ᵏ, U ƙ, ƒ ∞ C Ꮶ, ⒰ * K,
u Ↄ ᴋ, ᆿ U ⓒ , ᆿ U Ꮶ , n , ƒ Ц C ƙ, ⒦ ꜰ, K ¢ ᵘ f, ⒰ Ꮶ, ᴄ 00 , Ϝ U k,
u ¢ ⒦ , * Ѥ, ƒ С ᴋ, C Ꮶ, @ Κ , ʞ С ᶠ, ᵾ Ϛ Ꮶ, ᶠ ⒰ ɔ , F Ц ⒞ ʞ, ⒡ ⒰ К ɔ,
ɟ υ ¢ , Ѥ ȼ U ᆿ, ᴜ Ↄ ʞ, ғ * K, ᴄ ʞ, F ʞ, @ ȼ , ⒰ * , ᵾ ȼ , F ¢ Ѥ,
ꜰ ⓤ ƙ Ϛ, ⓕ 00 c ʞ, 00 Ϛ K, υ Ↄ Κ , ꜰ μ ⓒ Ж , ᵘ Ϛ ʞ, Ϝ ᵘ Ↄ ᵏ, ⒡ ᵾ Ꮯ , Ϝ ⒰ ȼ Ѥ, ƒ n Ѥ,
ᆿ μ ⓒ k, Ц ɕ Κ , ғ μ Ѥ, f ⓤ Ꮯ , ᵏ μ ƒ, ᵏ С , ᆿ ∞ , ғ ᵘ Ꮯ , ƒ μ Ↄ k, f oo K ȼ,
ɟ С , ꜰ n K, 00 ᵏ, ᶠ μ ⓒ , c ∞ Ϝ, ᆿ Ц Ć ⒦ , ᵘ ᴄ , F 00 ⓚ , ᶠ @ ȼ К , ...
And that’s not all: there are at least a bazingatillion more where those came from. Do you see now why this fundamentally cannot be done?
Full Disclosure
Because I don't believe in security through obscurity, here's the program that generates all those:
#!/usr/bin/env perl
#
# unifuck - print infinite permutations of fuck in unicode aliases
#
# Tom Christiansen <tchrist@perl.com>
# Mon May 23 09:37:27 MDT 2011
use strict;
use warnings;
use charnames ":full";
use Unicode::Normalize;
binmode(STDOUT, ":utf8");
our(@diddle, @fuck, %fuck); # initted down below
while (my($f,$u,$c,$k) = splice(@fuck, 0, 4)) {
$fuck{F}{$f}++;
$fuck{U}{$u}++;
$fuck{C}{$c}++;
$fuck{K}{$k}++;
}
my @F = keys %{ $fuck{F} };
my @U = keys %{ $fuck{U} };
my @C = keys %{ $fuck{C} };
my @K = keys %{ $fuck{K} };
while (1) {
my $f = $F[rand @F];
my $u = $U[rand @U];
my $c = $C[rand @C];
my $k = $K[rand @K];
for ($f,$u,$c,$k) {
next if length > 1;
next if /\p{EA=W}/;
next if /\pM/;
next if /\p{InEnclosedAlphanumerics}/;
s/$/$diddle[rand @diddle]/ if rand(100) < 15;
s/$/\N{COMBINING ENCLOSING KEYCAP}/ if rand(100) < 1;
}
if ( 0) { }
elsif (rand(100) < 5) { $u = q(@) }
elsif (rand(100) < 5) { $c = q(*) }
elsif (rand(100) < 10) { ($c,$k) = ($k,$c) }
elsif (rand(100) < 15) { ($f,$u,$c,$k) = reverse ($f,$u,$c,$k) }
print NFC("$f $u $c $k\n");
}
BEGIN {
# ok to have repeats in each position, since they'll be counted only once
# per unique strings
@fuck = (
"\N{LATIN CAPITAL LETTER F}",
"\N{LATIN CAPITAL LETTER U}",
"\N{LATIN CAPITAL LETTER C}",
"\N{LATIN CAPITAL LETTER K}",
"\N{LATIN SMALL LETTER F}",
"\N{LATIN SMALL LETTER U}",
"\N{LATIN SMALL LETTER C}",
"\N{LATIN SMALL LETTER K}",
"\N{LATIN SMALL LETTER F}",
"\N{INFINITY}",
"\N{LATIN SMALL LETTER C}",
"\N{LATIN SMALL LETTER K}",
"\N{LATIN SMALL LETTER F}",
"\N{LATIN SMALL LETTER O}\N{LATIN SMALL LETTER O}",
"\N{LATIN SMALL LETTER C}",
"\N{KELVIN SIGN}",
"\N{LATIN SMALL LETTER F}",
"\N{DIGIT ZERO}\N{DIGIT ZERO}",
"\N{CENT SIGN}",
"\N{LATIN CAPITAL LETTER K}",
"\N{LATIN LETTER SMALL CAPITAL F}",
"\N{LATIN LETTER SMALL CAPITAL U}",
"\N{LATIN LETTER SMALL CAPITAL C}",
"\N{LATIN LETTER SMALL CAPITAL K}",
"\N{MODIFIER LETTER SMALL F}",
"\N{MODIFIER LETTER SMALL U}",
"\N{MODIFIER LETTER SMALL C}",
"\N{MODIFIER LETTER SMALL K}",
"\N{MATHEMATICAL SCRIPT SMALL F}",
"\N{MATHEMATICAL SCRIPT SMALL U}",
"\N{MATHEMATICAL SCRIPT SMALL C}",
"\N{MATHEMATICAL SCRIPT SMALL K}",
"\N{MATHEMATICAL BOLD FRAKTUR CAPITAL F}",
"\N{MATHEMATICAL BOLD FRAKTUR CAPITAL U}",
"\N{MATHEMATICAL BOLD FRAKTUR CAPITAL C}",
"\N{MATHEMATICAL BOLD FRAKTUR CAPITAL K}",
"\N{MATHEMATICAL BOLD FRAKTUR SMALL F}",
"\N{MATHEMATICAL BOLD FRAKTUR SMALL U}",
"\N{MATHEMATICAL BOLD FRAKTUR SMALL C}",
"\N{MATHEMATICAL BOLD FRAKTUR SMALL K}",
"\N{MATHEMATICAL BOLD SCRIPT CAPITAL F}",
"\N{MATHEMATICAL SCRIPT CAPITAL U}",
"\N{MATHEMATICAL SCRIPT CAPITAL C}",
"\N{MATHEMATICAL SCRIPT CAPITAL K}",
"\N{CIRCLED LATIN SMALL LETTER F}",
"\N{CIRCLED LATIN SMALL LETTER U}",
"\N{CIRCLED LATIN SMALL LETTER C}",
"\N{CIRCLED LATIN SMALL LETTER K}",
"\N{PARENTHESIZED LATIN SMALL LETTER F}",
"\N{PARENTHESIZED LATIN SMALL LETTER U}",
"\N{PARENTHESIZED LATIN SMALL LETTER C}",
"\N{PARENTHESIZED LATIN SMALL LETTER K}",
"\N{GREEK CAPITAL LETTER GAMMA}\N{COMBINING SHORT STROKE OVERLAY}",
"\N{GOTHIC LETTER QAIRTHRA}",
"\N{CHEROKEE LETTER TLI}",
"\N{CHEROKEE LETTER TSO}",
"\N{LATIN SMALL LETTER F WITH HOOK}",
"\N{GREEK SMALL LETTER MU}",
"\N{LATIN SMALL LETTER C WITH CURL}",
"\N{CYRILLIC CAPITAL LETTER IOTIFIED E}",
"\N{CYRILLIC CAPITAL LETTER GHE}\N{COMBINING SHORT STROKE OVERLAY}",
"\N{CYRILLIC CAPITAL LETTER TSE}",
"\N{CYRILLIC CAPITAL LETTER ES}",
"\N{CYRILLIC CAPITAL LETTER KA}",
"\N{CYRILLIC SMALL LETTER GHE WITH STROKE}",
"\N{LATIN SMALL CAPITAL LETTER U WITH STROKE}",
"\N{LATIN SMALL LETTER C WITH STROKE}",
"\N{LATIN SMALL LETTER K WITH HOOK}",
"\N{GREEK LETTER DIGAMMA}",
"\N{GREEK SMALL LETTER UPSILON}",
"\N{GREEK LETTER STIGMA}",
"\N{GREEK CAPITAL LETTER KAPPA}",
"\N{HANGUL JONGSEONG KHIEUKH}",
"\N{LATIN CAPITAL LETTER U}",
"\N{ROMAN NUMERAL REVERSED ONE HUNDRED}",
"\N{CYRILLIC CAPITAL LETTER ZHE}",
"\N{LATIN SMALL LETTER DOTLESS J WITH STROKE}",
"\N{LATIN SMALL LETTER N}",
"\N{LATIN SMALL LETTER OPEN O}",
"\N{LATIN SMALL LETTER TURNED K}",
"\N{FULLWIDTH LATIN CAPITAL LETTER F}",
"\N{FULLWIDTH LATIN CAPITAL LETTER U}",
"\N{FULLWIDTH LATIN CAPITAL LETTER C}",
"\N{FULLWIDTH LATIN CAPITAL LETTER K}",
);
@diddle = (
"\N{COMBINING GRAVE ACCENT}",
"\N{COMBINING ACUTE ACCENT}",
"\N{COMBINING CIRCUMFLEX ACCENT}",
"\N{COMBINING TILDE}",
"\N{COMBINING BREVE}",
"\N{COMBINING DOT ABOVE}",
"\N{COMBINING DIAERESIS}",
"\N{COMBINING CARON}",
"\N{COMBINING CANDRABINDU}",
"\N{COMBINING INVERTED BREVE}",
"\N{COMBINING GRAVE TONE MARK}",
"\N{COMBINING ACUTE TONE MARK}",
"\N{COMBINING GREEK PERISPOMENI}",
"\N{COMBINING FERMATA}",
"\N{COMBINING SUSPENSION MARK}",
);
}