Create asset with description that is a secure hash

I’m creating an asset that will be tied to a physical object and I wish
to reference at the time of creation of the asset an image of the
object. In playing around a bit I found that the description for a new
asset is only 41 characters. Are there any secure hash functions with a
result that fit in to 41 characters? sha256sum creates a 64 character
result. Sha1 does 40 but should I consider it secure?

This will be an art project so security isn’t huge but I’d hate to use sha1 if it’s not that secure.

My other alternative is to forget the description field and do a broadcast but it’s not quite as clean. Any other ideas?

Edit: I think I’m going to go with ripemd-160 since that is used by Bitcoin and outputs 40 bytes.

Have you looked into the Enhanaced Asset Info options? Personally I think the feature is underutilized.

Just looked at it and it would be cool to be able to add that extra info. My question though is what is the simplest way then to include a hash that will be embedded in the blockchain?

If you need time stamping, then a broadcast would be the way to go I guess. You could either hash the image or use a json file with meta data of the image. And then hash that json and broadcast it from the issuer address. There is no standard protocol as to how to do this, so you will probably also need a site explaining how your hashes were done and how to verify them. 

If you don't need timestamping then the Enhanced Info is one way to do. In the json file you could include the image metadata inside. Counterwallet picks up the Enhanced Info and so does Blockscan and will display this on the asset page

Say I include the hash in the initially locked issuance. Then do an update to the description for the asset to link to the json. Would it be easy to see that initial hash via blockscan, perhaps by linking to the initial issuance?

Edit: It looks like blockscan only shows description fields to the user when they are updated and it’s not clear to me how one might see a description that was set in the intial issuance. for example.

So for now the plan would be issue with no description, then change the description to the file hash, then change it to the json link.

Just an update. I have released and even sold a couple of the artworks! Bitcointalk thread here:

It’s been fun working out a process for this kind of thing. If you have any tips on how to simplify or further secure the process, I’m all ears…er eyes.

If you use counterpartyd, the description and broadcast can be arbitrarily long.