pfrazee / base-emoji Goto Github PK
View Code? Open in Web Editor NEWOutput a buffer (0xdeadbeef) in emojis (:snowflake::panda_face::police_car::tongue:)
License: MIT License
Output a buffer (0xdeadbeef) in emojis (:snowflake::panda_face::police_car::tongue:)
License: MIT License
Do we know what terminal support for emojis looks like across platforms? I know iterm2 renders them...
unicode is annoying to work with, you cant do split('')
on the emoji string. would be nice to get a list of the emojis. im open to alternative solutions.
๐ก๐ณ๐๐โช๐ซ
Hmm... github can't do donut.
Since GitHub now support ๐ข ๐ง ๐ ๐ ๐ in the repo description I consider it a complete lack of ๐ of this project not to exploit that to the fullest ๐
Hello!
I wanted to implement your project in other languages, but I am not sure if I am legally allowed to do that. So open-sourcing your work would be a good idea.
would be nice to compress even more. 512 emojis could be good. Wish there were 1024 to make things easier for us.
I think we could optimize the emoji used,
there are some sets of emoji that are sort of similar, like multilpe different sorts of arrows,
one hump and two hump camels, several different buildings, etc, etc.
Also lots of clocks, it is probably easier to remember "clock" than 6:30
I've been thinking about actually experimentally testing this with a psychological experiment where people rember hashes encoded as hex, base64, and emoji, and detect how well they detect partial collisions by eye.
var emoji = require('base-emoji')
var data = new Buffer('d16ac00bb78efb8e59efdfa1206c43940e28c683afc432ba742276e01853c30e', 'hex')
var encoded = emoji.toUnicode(data)
console.log(encoded)
// outputs: ๐ข๐๐งโ๏ธ๐ธ๐ซ๐พ๐ซ๐๐ฌ๐จ๐โฌ
๏ธ๐๐ป๐๐โ๏ธยฉ๐๐๐๐ผ๐ฅ๐ฅโ๏ธ๐ฐ๐
โ๏ธโฌ๏ธ๐ช๐
var decoded = emoji.fromUnicode(encoded)
console.log(decoded.toString('hex') === data.toString('hex'))
// outputs: false
In a secure communication system, it is necessary at some point to verify keys.
Usually, this is represented as text key encoded as letters, hex
, base32
, base58
or maybe base64
. Since a hash is a lot to deal with, often the hash is truncated to be easier for humans to process. (it's important not to truncate too much, or security will be lost https://evil32.com/ )
Humans have an approximately fixed capacity to remember things, and so when looking at a finger print, how many bits are they actually remembering? Since it seems the way humans work is they can remember (say) 7 things, but there is not a limit on the size of the set the 7 things are picked from. They could just as easily remember 7 animals as 7 digits.
Thus, to exand the security property of the user interface, if key fingerprints are displayed in a denser format (such as base emoji) then humans ought to be able to remember more bits, and thus have more secure fingerprints.
I want to test this in an experiment - i figure, a web page test subjects visit, and it associates keys with user names - then an attacker is simulated, where the subject must flag invalid keys that partially collide with their known keys.
The question is: does the detection success vary in proportion to encoding, and collision length?
@jbenet would love your ideas on this.
So far I have been unable to find any research on the usability of key fingerprints.
I propose:
4 alphabets:
notes:
([0-256]000)+ -- ie. [10, 0, 0, 0, 2, 0, 0, 0, ... ]
)[ deleted a portion in which jbenet utterly fails to do simple math ]
Guys, be1024
is going to be huge sweet.
updates:
2^10 = 2^32
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.