Menu

Share this page

Hash front
Customize

Hash

A "hash" is a generic term for a bit of software that - given the same input - will produce the same output, and where the input cannot be reconstructed by looking at the output. For example, given the input of "23" a very simple hash would be "5" (adding them together). In this case you cannot reconstruct "23" by analysing "5" because other inputs will also equal "5" ("41", for example). Although you cannot reconstruct the input, you can verify that the input matches the hash. The use of hashes in applications is typically used to store passwords because if the password database is stolen and your inputs (passwords) are hashed then the thief can’t feasibly reconstruct the input (the original passwords) and use them in the future. So as well as the thief not having anything useful, it means you don’t need to tell all the customers to change their passwords. Because you're only storing the hash of a password this does mean you can’t tell customers what their password is – you can only change it. When two inputs make the same output in a hash this is called a collision. Just before "23" was hashed as "5" but "41" would also be "5". Collisions in hashes are to be expected; a mere collision is no big deal. However the output of a good hash is also supposed have some other properties – if a good hash produces a value between 0000 and 9999 it shouldn’t produce twice as many outputs between 8000-9999 – the output should be equally distributed across the output space. Also, a good hash given the input "password" and "pbssword" (which vary by only a single letter) should produce very different outputs. This should apply to all inputs, not just typical inputs. For example, "password" in the MD5 hash is 5F4DCC3B5AA765D61D8327DEB882CF99. Whereas "pbssword" is 65ADD8ADCD26EA1AF12B05F67FD50B97. This change in output is important because if I already know 5F4DCC(...) as being the hash of "password" this shouldn't help me work out that 5F4DCB(...) came from an input near the word "password". Finally, a good hash should make it computationally infesible to construct a possible input. If a hash's output varies only between 1 and 9 then generating a possible input is easy, so this is not a good hash. Good hashes like SHA-1 would take years of computer time to construct a possible input (as currently known). Unless you're a crypto scientist use an established and researched hash. When using hashes in your applications it's important to remember that hashes are repeatable (given the same input you'll get the same output) and that there are precalculated databases of hashes and popular inputs (popular passwords, english words, etc - and their resulting hashes). These databases could be used for good or bad, but as you're hashing your passwords in the first place you'll be wanting to defeat these databases. One method of defeating such databases is by salting your input. For example, before hashing the word "password" you might combine "salted" so as to get "saltedpassword" -- producing a hash that the precalculated database is less likely to have (it'll have the hash for "cat" but it's less likely to have "saltedcat"). You can either add your salt at the beginning, or intermingle your letters. You may even decide to add specific bytes onto your input so your salt isn't English. Salting could be done application-wide, or per-user (have a salt column in your user table). Popular hashes are MD5, SHA-0, and SHA-1. Recently MD5 and SHA-0 were shown to be significantly easier to computationally So use SHA1 (or greater) as your hash and keep an eye out for recently discovered flaws in hashing algorithms. And as hashes vary in length be sure that your database doesn't truncate your good work in protecting passwords.

Checking text fit...
Text fits
Text may be too long -
Text may be too small -
Checking delivery...
Order in for delivery

The Urban Dictionary Tee

Soft, comfortable fabric
Printed on-demand just for you
True to size fit
Pre-shrunk (won't shrink in wash)
Tear-away label (no itchy tags)
Every order personally reviewed
71
8
1
0
3
Review by Gabe L.

Not only was the product exactly what I expected, I was well informed on the shipping process in a seamless and timely manner!

Gabe L.Nov 8
✓ Verified Purchase

The T-shirt was a birthday gift for my girlfriend and she absolutely loved it.

Bobby L.Nov 7
✓ Verified Purchase
Review by Am R.

Happy that this tee is comfy and fits well. I wish the sentence was on the back too.

Am R.Nov 5
✓ Verified Purchase

Review Details

Pro Customization

Create unique products with your own words and definitions

Live Preview

Front Preview
Back Preview

Personalize Your Design

Checking text fit...
Text fits
Text may be too long
Text may be too small

Debug: Product Metadata

KeyValue (click to copy)

Return Policy

Made Just For You

Each product is custom-printed with your unique text, making it truly one-of-a-kind.

Defect-Free Guarantee

If your product arrives with printing defects, damage, or quality issues, we'll send you a free replacement.

Custom Orders

Due to the personalized nature of your order, we don't accept returns for change of mind or sizing issues.

Questions about your order? Contact our support team for assistance.

Tap here to close
Swipe to navigate • Pinch to zoom

Share this product

Size Guide

Measurements may vary by up to 2" (5 cm). Pro tip: Measure one of your t-shirts at home and compare!

T-shirt measurements

A - Length

Measure from the top of the collar to the bottom hem

B - Width

Measure across the chest from armpit to armpit

Size Chart

SizeLengthWidth
XS27"16½"
S28"18"
M29"20"
L30"22"
XL31"24"
2XL32"26"
3XL33"28"
SizeLengthWidth
XS69 cm42 cm
S71 cm46 cm
M74 cm51 cm
L76 cm56 cm
XL79 cm61 cm
2XL81 cm66 cm
3XL84 cm71 cm

Your Security Matters

Powered by Stripe

Your payment information is encrypted and processed securely by Stripe, trusted by millions of businesses worldwide.

PCI DSS Compliant

Our payment providers meet the highest standards of payment security set by the Payment Card Industry.

Your Data is Protected

Urban Dictionary never stores your credit card details. All transactions are encrypted using industry-standard SSL technology.

Quality Production

Products are made-to-order with quality materials at global facilities to reduce shipping time and environmental impact.

Your trust is our priority. If you have any security concerns, please contact our support team.

Free Shipping Worldwide

Loading shipping information...

No hidden fees, no surprises at checkout

Order Placed

Your custom product joins today's batch if you order in Your custom product joins today's batch

Made On-Demand

Printed at the closest facility to reduce shipping time from facilities in North America, Europe, Asia & Australia

Free Shipping

Your package ships to your door at no extra cost

Delivered

Estimated delivery Arrives in 5-10 business days

Times vary by location. Products are custom-made to reduce waste.

🤖

Shopping Assistant

AI-generated responses. Verify claims.
Conversations may be monitored.