Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Morning, I created this as an extended-weekend project, after realizing that I'd need these hashes as a part of larger project I'm working on.

Basically, Text goes in, Picture of a Robot comes out.

Where I'm using this is sort of like an identicon, to help quickly identify a poster's 4096-bit public keys, and see if you're talking to the same man.

Is it perfect? No, but it's a quick visual guide to any text, in the form of faces, which are easy for people to remember.



Robohash looks great. As the 'inventor' of Identicon, I've been meaning to revisit the subject with animal (identimal) or robot (identibot) themes in mind so it's nice to see your rendition of the later. Well done, sir.


Identicons are a great idea, I really love them.. They're a good solution to a gut-check "Something is wrong here.."

Sort of like a SSH-fingerprint.

The problem I've had with them is that they're generate not all that memorable. Was that triangles pointing left, then up, or up then left?

This is my attempt at addressing that problem for my own new project, but I'd love to see what you build! If you want to use these images, feel free. They're CC-BY, so they're open to the world now ;)


Re 'not all that memorable', that's because identicons were originally designed for 'distinguishing' and 'matching' data, not 'memorizing'.

Abstract geometric identicons like my original implementation as well as variations used at Wordpress and StackOverflow are, while nearly impossible to remember, distinguishable in a pile which comes in handy when distinguishing the 'voice' of individuals in a long thread of comments.

To use identicons as permanent identity, one has to 'identify' with their identicon. We can identify faces of our friends because we shared memories with them, stories if you will.

So robotic identicons like yours can be made more memorable if users had some ways to create a story they can associate with it like 'blue viking with left arm missing', etc.


Using stories is a great idea, but I'm not sure how doable it is to generate images that suggest a story (certainly, harder than cute variations on robots); in addition, those stories have to be memorable i.e. make sense, as stories. I think that's approaching a hard problem, maybe even hard AI.

But I like the idea. Perhaps the image problem could be met by combining it with a bio (giving a story); and the "make sense" problem could be addressed by a story grammar (following the hero's myth as a template, with recursive and optional parts), written using templates consisting of canned pseudo-english sentences with gaps filled by a set of names, objects, places that play the various roles in the "hero grammar": the key, the sword, the grail, the shadow, the mentor, the ordinary world, the special word, various thresholds - perhaps some word generation for place names. If the story made sense, as a journey, it might be memorable, even stirring in an awkward way, despite all the grammar/template/presets...

Of course, maybe I'm wrong: "<color> <warriortype> with <injury>" is already fairly rich. Even, extending it to incongruous occupations (surgeon, nurse, motorcyclist, developer). Perhaps, like theatresports, just starting points of a place, occupation and problem is enough to suggest a story to the user?


Right. If employees of Apple gets certificates with O = "Apple" and OU = "Engineering" which maps to a red apple badge on their robot's body and a gear mark on the arm, people could potentially learn to 'parse' that at a glance.

Everywhere we look in RL, there are stories being told all the time.


That makes a lot of sense. I wasn't trying to be disparing. It's a great idea, and very helpful, I just felt like it could go in a slightly different direction for this specific use-case (Public Keys)


[didn't find a reply link to your more recent comment so I'll reply here]

I think an interesting way to apply identicon to certs is to map each cert attributes to an 'attribute' of identicon, visualizing attributes.


What are the odds of a collision? How many unique elements are there that can make up a robot?


If you use all three sets, and enable backgrounds, the collision chance is much lower.

Each Robot is made up of 6 sets of 10 choices each, plus backgrounds.

It's not perfect, but it's enough to give you a basic view into "Is this the same guy or not"


as in 10^6 possibilities, ignoring backgrounds? For the curious, that means collisions are expected >50% of the time with ~1200 samples, and someone could easily generate collisions on purpose with little effort.

So it works well for a simple signal (which is the goal), but shouldn't be relied on if people might try to abuse it.


If you use all three sets (?set=any), plus backgrounds, that adds two additional choices, which brings us into the 100+ Million category. As a signal to review the Pubkey, that's probably enough.

I could have made up more Random elements, but that'd take more time/money, which isn't worth it unless anyone outside of me actually wants it ;)


It seems like it would give you a false sense of security. You have to think about it in terms of "could an attacker who can spend $1000/hr brute force a duplicate pub/priv key combination that generates the same robot.

I wonder if you could get better results using a markov chain to generate english prose from a large sample. If you take the top N next word options, and select one based on the next log_2(N) bits of your hash/key, you lose no key space and should get a nonsensical but perhaps easily remembered string.


Sounds like it would be a pretty good "did I type my password correctly?" indicator.


Lotus Notes has one of those with a set of keys. I recall that the first couple of times it was weird -- then it seemed to make sense. What is really weird though -- it puts in additional XX characters when you typed out your password. So type out "pass" and it might display "XXXXXXX" Which I guess is effective for preventing over-the-shoulder information leakage but weird all the same.


You might be interested in Chroma Hash for that sort of purpose: http://mattt.github.com/Chroma-Hash/


woudn't you need to be sending the password over to the robot icon people to get the imag?


This is extremely well done.

But incidentally:

see if you're talking to the same man

comes across a bit odd, seeing as lately a few women and children have been reported using IP addresses.


Sorry, too late to edit the comment now, HN won't let me anymore. I was using man generically, not specifically. Mankind, if you will.

s/man/person


I wouldn't worry about it. You didn't come off as sexist or anything; it was clearly just informal colloquial speak.


The concern here is not that the poster comes off looking like a bad person, because clearly he* doesn’t, but that unintentionally sexist language persists.

If I had corrected the poster’s lack of a final slash in his s/// syntax, I wouldn’t have been implicitly accusing him of being an incompetent programmer, because it’s a common and small mistake that I make too. But perhaps it’s worth pointing out every tenth time one sees it, as a mater of politeness, demonstrating the assumption that the poster cares.

So my purpose was not to say “you monster” but “psst, you missed a spot”, and that’s how he seems to have taken it.

To me, “man” meaning “human” isn’t colloquial at all (except in the slangy sense of don’t have a cow, man) – in fact, it’s stilted at best.

* I checked his profile.


At this moment, the #1 post on my reddit front page is complaining that the people who complain about spelling or grammar errors... probably don't speak two languages. ie. Whilst fighting the good fight for gender-neutrality/spelling/grammar, please don't forget that some people (especially on the internet) might not have as a nuanced expression in English as you.


It's colloquial in the same sense that it's ok to say "the best man for the job"

"We were looking for the best for the job" .... and then go on to announce it's a woman. We don't have to be such prudes to be respectful of the other gender.


“The best man for the job” is an idiom. Even then, I don’t see any plausible advantage it has in most contexts over “the best person for the job”.

This isn’t meant as prudery. Would you develop that argument? I’m curious why I’m being downvoted and would like a chance to engage.


Honestly? It boils down to me thinking to myself "I could see me saying 'man' in this case too" with the knowledge that I am one of the most outspoken champions of women equality and rights in most sittings I'm in.. so I find it overkill to make a fuss about this, esp. in such an understandable context.


Oh go crawl back under your he-she-it rock, Randall Munroe.


Definitely. Just wanted to point it out.


Any chance of open-sourcing this? :)


vladev- Sure. It's on Github; Written in Python + Tornado. If you're interested, email me.

I'd rather clean it up, but if you're a Python guy, you could help ;)


URL please.


It's really not that ready for public consumption yet, but, I've added you to the project, and made it public.

https://github.com/e1ven/Robohash/


Thanks :) Actually I asked just to have a look at how this is done. I'll surely help if I can.




Consider applying for YC's Fall 2026 batch! Applications are open till July 27.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: