CINXE.COM
Cryptographic hash function - Wikipedia
<!DOCTYPE html> <html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-sticky-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-feature-night-mode-enabled skin-theme-clientpref-day vector-toc-available" lang="en" dir="ltr"> <head> <meta charset="UTF-8"> <title>Cryptographic hash function - Wikipedia</title> <script>(function(){var className="client-js vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-sticky-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-feature-night-mode-enabled skin-theme-clientpref-day vector-toc-available";var cookie=document.cookie.match(/(?:^|; )enwikimwclientpreferences=([^;]+)/);if(cookie){cookie[1].split('%2C').forEach(function(pref){className=className.replace(new RegExp('(^| )'+pref.replace(/-clientpref-\w+$|[^\w-]+/g,'')+'-clientpref-\\w+( |$)'),'$1'+pref+'$2');});}document.documentElement.className=className;}());RLCONF={"wgBreakFrames":false,"wgSeparatorTransformTable":["",""],"wgDigitTransformTable":["",""],"wgDefaultDateFormat":"dmy", "wgMonthNames":["","January","February","March","April","May","June","July","August","September","October","November","December"],"wgRequestId":"63f70ca8-0c53-4962-b9b4-4b78827b5fe2","wgCanonicalNamespace":"","wgCanonicalSpecialPageName":false,"wgNamespaceNumber":0,"wgPageName":"Cryptographic_hash_function","wgTitle":"Cryptographic hash function","wgCurRevisionId":1257065475,"wgRevisionId":1257065475,"wgArticleId":439526,"wgIsArticle":true,"wgIsRedirect":false,"wgAction":"view","wgUserName":null,"wgUserGroups":["*"],"wgCategories":["Webarchive template wayback links","Articles with short description","Short description is different from Wikidata","Articles needing additional references from May 2016","All articles needing additional references","All articles with unsourced statements","Articles with unsourced statements from May 2023","Articles with excerpts","Articles with unsourced statements from July 2017","Articles with unsourced statements from May 2016", "Articles with unsourced statements from April 2020","Cryptographic primitives","Cryptographic hash functions","Hashing"],"wgPageViewLanguage":"en","wgPageContentLanguage":"en","wgPageContentModel":"wikitext","wgRelevantPageName":"Cryptographic_hash_function","wgRelevantArticleId":439526,"wgIsProbablyEditable":true,"wgRelevantPageIsProbablyEditable":true,"wgRestrictionEdit":[],"wgRestrictionMove":[],"wgRedirectedFrom":"One-way_hash_function","wgNoticeProject":"wikipedia","wgCiteReferencePreviewsActive":false,"wgFlaggedRevsParams":{"tags":{"status":{"levels":1}}},"wgMediaViewerOnClick":true,"wgMediaViewerEnabledByDefault":true,"wgPopupsFlags":0,"wgVisualEditor":{"pageLanguageCode":"en","pageLanguageDir":"ltr","pageVariantFallbacks":"en"},"wgMFDisplayWikibaseDescriptions":{"search":true,"watchlist":true,"tagline":false,"nearby":true},"wgWMESchemaEditAttemptStepOversample":false,"wgWMEPageLength":50000,"wgInternalRedirectTargetUrl":"/wiki/Cryptographic_hash_function", "wgRelatedArticlesCompat":[],"wgEditSubmitButtonLabelPublish":true,"wgULSPosition":"interlanguage","wgULSisCompactLinksEnabled":false,"wgVector2022LanguageInHeader":true,"wgULSisLanguageSelectorEmpty":false,"wgWikibaseItemId":"Q477202","wgCheckUserClientHintsHeadersJsApi":["brands","architecture","bitness","fullVersionList","mobile","model","platform","platformVersion"],"GEHomepageSuggestedEditsEnableTopics":true,"wgGETopicsMatchModeEnabled":false,"wgGEStructuredTaskRejectionReasonTextInputEnabled":false,"wgGELevelingUpEnabledForUser":false};RLSTATE={"ext.globalCssJs.user.styles":"ready","site.styles":"ready","user.styles":"ready","ext.globalCssJs.user":"ready","user":"ready","user.options":"loading","ext.math.styles":"ready","ext.cite.styles":"ready","skins.vector.search.codex.styles":"ready","skins.vector.styles":"ready","skins.vector.icons":"ready","jquery.makeCollapsible.styles":"ready","ext.wikimediamessages.styles":"ready","ext.visualEditor.desktopArticleTarget.noscript":"ready", "ext.uls.interlanguage":"ready","wikibase.client.init":"ready","ext.wikimediaBadges":"ready"};RLPAGEMODULES=["mediawiki.action.view.redirect","ext.cite.ux-enhancements","mediawiki.page.media","ext.scribunto.logs","site","mediawiki.page.ready","jquery.makeCollapsible","mediawiki.toc","skins.vector.js","ext.centralNotice.geoIP","ext.centralNotice.startUp","ext.gadget.ReferenceTooltips","ext.gadget.switcher","ext.urlShortener.toolbar","ext.centralauth.centralautologin","mmv.bootstrap","ext.popups","ext.visualEditor.desktopArticleTarget.init","ext.visualEditor.targetLoader","ext.echo.centralauth","ext.eventLogging","ext.wikimediaEvents","ext.navigationTiming","ext.uls.interface","ext.cx.eventlogging.campaigns","ext.cx.uls.quick.actions","wikibase.client.vector-2022","ext.checkUser.clientHints","ext.growthExperiments.SuggestedEditSession","wikibase.sidebar.tracking"];</script> <script>(RLQ=window.RLQ||[]).push(function(){mw.loader.impl(function(){return["user.options@12s5i",function($,jQuery,require,module){mw.user.tokens.set({"patrolToken":"+\\","watchToken":"+\\","csrfToken":"+\\"}); }];});});</script> <link rel="stylesheet" href="/w/load.php?lang=en&modules=ext.cite.styles%7Cext.math.styles%7Cext.uls.interlanguage%7Cext.visualEditor.desktopArticleTarget.noscript%7Cext.wikimediaBadges%7Cext.wikimediamessages.styles%7Cjquery.makeCollapsible.styles%7Cskins.vector.icons%2Cstyles%7Cskins.vector.search.codex.styles%7Cwikibase.client.init&only=styles&skin=vector-2022"> <script async="" src="/w/load.php?lang=en&modules=startup&only=scripts&raw=1&skin=vector-2022"></script> <meta name="ResourceLoaderDynamicStyles" content=""> <link rel="stylesheet" href="/w/load.php?lang=en&modules=site.styles&only=styles&skin=vector-2022"> <meta name="generator" content="MediaWiki 1.44.0-wmf.5"> <meta name="referrer" content="origin"> <meta name="referrer" content="origin-when-cross-origin"> <meta name="robots" content="max-image-preview:standard"> <meta name="format-detection" content="telephone=no"> <meta property="og:image" content="https://upload.wikimedia.org/wikipedia/commons/thumb/2/2b/Cryptographic_Hash_Function.svg/1200px-Cryptographic_Hash_Function.svg.png"> <meta property="og:image:width" content="1200"> <meta property="og:image:height" content="869"> <meta property="og:image" content="https://upload.wikimedia.org/wikipedia/commons/thumb/2/2b/Cryptographic_Hash_Function.svg/800px-Cryptographic_Hash_Function.svg.png"> <meta property="og:image:width" content="800"> <meta property="og:image:height" content="579"> <meta property="og:image" content="https://upload.wikimedia.org/wikipedia/commons/thumb/2/2b/Cryptographic_Hash_Function.svg/640px-Cryptographic_Hash_Function.svg.png"> <meta property="og:image:width" content="640"> <meta property="og:image:height" content="464"> <meta name="viewport" content="width=1120"> <meta property="og:title" content="Cryptographic hash function - Wikipedia"> <meta property="og:type" content="website"> <link rel="preconnect" href="//upload.wikimedia.org"> <link rel="alternate" media="only screen and (max-width: 640px)" href="//en.m.wikipedia.org/wiki/Cryptographic_hash_function"> <link rel="alternate" type="application/x-wiki" title="Edit this page" href="/w/index.php?title=Cryptographic_hash_function&action=edit"> <link rel="apple-touch-icon" href="/static/apple-touch/wikipedia.png"> <link rel="icon" href="/static/favicon/wikipedia.ico"> <link rel="search" type="application/opensearchdescription+xml" href="/w/rest.php/v1/search" title="Wikipedia (en)"> <link rel="EditURI" type="application/rsd+xml" href="//en.wikipedia.org/w/api.php?action=rsd"> <link rel="canonical" href="https://en.wikipedia.org/wiki/Cryptographic_hash_function"> <link rel="license" href="https://creativecommons.org/licenses/by-sa/4.0/deed.en"> <link rel="alternate" type="application/atom+xml" title="Wikipedia Atom feed" href="/w/index.php?title=Special:RecentChanges&feed=atom"> <link rel="dns-prefetch" href="//meta.wikimedia.org" /> <link rel="dns-prefetch" href="//login.wikimedia.org"> </head> <body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject mw-editable page-Cryptographic_hash_function rootpage-Cryptographic_hash_function skin-vector-2022 action-view"><a class="mw-jump-link" href="#bodyContent">Jump to content</a> <div class="vector-header-container"> <header class="vector-header mw-header"> <div class="vector-header-start"> <nav class="vector-main-menu-landmark" aria-label="Site"> <div id="vector-main-menu-dropdown" class="vector-dropdown vector-main-menu-dropdown vector-button-flush-left vector-button-flush-right" > <input type="checkbox" id="vector-main-menu-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-main-menu-dropdown" class="vector-dropdown-checkbox " aria-label="Main menu" > <label id="vector-main-menu-dropdown-label" for="vector-main-menu-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-menu mw-ui-icon-wikimedia-menu"></span> <span class="vector-dropdown-label-text">Main menu</span> </label> <div class="vector-dropdown-content"> <div id="vector-main-menu-unpinned-container" class="vector-unpinned-container"> <div id="vector-main-menu" class="vector-main-menu vector-pinnable-element"> <div class="vector-pinnable-header vector-main-menu-pinnable-header vector-pinnable-header-unpinned" data-feature-name="main-menu-pinned" data-pinnable-element-id="vector-main-menu" data-pinned-container-id="vector-main-menu-pinned-container" data-unpinned-container-id="vector-main-menu-unpinned-container" > <div class="vector-pinnable-header-label">Main menu</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-main-menu.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-main-menu.unpin">hide</button> </div> <div id="p-navigation" class="vector-menu mw-portlet mw-portlet-navigation" > <div class="vector-menu-heading"> Navigation </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-mainpage-description" class="mw-list-item"><a href="/wiki/Main_Page" title="Visit the main page [z]" accesskey="z"><span>Main page</span></a></li><li id="n-contents" class="mw-list-item"><a href="/wiki/Wikipedia:Contents" title="Guides to browsing Wikipedia"><span>Contents</span></a></li><li id="n-currentevents" class="mw-list-item"><a href="/wiki/Portal:Current_events" title="Articles related to current events"><span>Current events</span></a></li><li id="n-randompage" class="mw-list-item"><a href="/wiki/Special:Random" title="Visit a randomly selected article [x]" accesskey="x"><span>Random article</span></a></li><li id="n-aboutsite" class="mw-list-item"><a href="/wiki/Wikipedia:About" title="Learn about Wikipedia and how it works"><span>About Wikipedia</span></a></li><li id="n-contactpage" class="mw-list-item"><a href="//en.wikipedia.org/wiki/Wikipedia:Contact_us" title="How to contact Wikipedia"><span>Contact us</span></a></li> </ul> </div> </div> <div id="p-interaction" class="vector-menu mw-portlet mw-portlet-interaction" > <div class="vector-menu-heading"> Contribute </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-help" class="mw-list-item"><a href="/wiki/Help:Contents" title="Guidance on how to use and edit Wikipedia"><span>Help</span></a></li><li id="n-introduction" class="mw-list-item"><a href="/wiki/Help:Introduction" title="Learn how to edit Wikipedia"><span>Learn to edit</span></a></li><li id="n-portal" class="mw-list-item"><a href="/wiki/Wikipedia:Community_portal" title="The hub for editors"><span>Community portal</span></a></li><li id="n-recentchanges" class="mw-list-item"><a href="/wiki/Special:RecentChanges" title="A list of recent changes to Wikipedia [r]" accesskey="r"><span>Recent changes</span></a></li><li id="n-upload" class="mw-list-item"><a href="/wiki/Wikipedia:File_upload_wizard" title="Add images or other media for use on Wikipedia"><span>Upload file</span></a></li> </ul> </div> </div> </div> </div> </div> </div> </nav> <a href="/wiki/Main_Page" class="mw-logo"> <img class="mw-logo-icon" src="/static/images/icons/wikipedia.png" alt="" aria-hidden="true" height="50" width="50"> <span class="mw-logo-container skin-invert"> <img class="mw-logo-wordmark" alt="Wikipedia" src="/static/images/mobile/copyright/wikipedia-wordmark-en.svg" style="width: 7.5em; height: 1.125em;"> <img class="mw-logo-tagline" alt="The Free Encyclopedia" src="/static/images/mobile/copyright/wikipedia-tagline-en.svg" width="117" height="13" style="width: 7.3125em; height: 0.8125em;"> </span> </a> </div> <div class="vector-header-end"> <div id="p-search" role="search" class="vector-search-box-vue vector-search-box-collapses vector-search-box-show-thumbnail vector-search-box-auto-expand-width vector-search-box"> <a href="/wiki/Special:Search" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only search-toggle" title="Search Wikipedia [f]" accesskey="f"><span class="vector-icon mw-ui-icon-search mw-ui-icon-wikimedia-search"></span> <span>Search</span> </a> <div class="vector-typeahead-search-container"> <div class="cdx-typeahead-search cdx-typeahead-search--show-thumbnail cdx-typeahead-search--auto-expand-width"> <form action="/w/index.php" id="searchform" class="cdx-search-input cdx-search-input--has-end-button"> <div id="simpleSearch" class="cdx-search-input__input-wrapper" data-search-loc="header-moved"> <div class="cdx-text-input cdx-text-input--has-start-icon"> <input class="cdx-text-input__input" type="search" name="search" placeholder="Search Wikipedia" aria-label="Search Wikipedia" autocapitalize="sentences" title="Search Wikipedia [f]" accesskey="f" id="searchInput" > <span class="cdx-text-input__icon cdx-text-input__start-icon"></span> </div> <input type="hidden" name="title" value="Special:Search"> </div> <button class="cdx-button cdx-search-input__end-button">Search</button> </form> </div> </div> </div> <nav class="vector-user-links vector-user-links-wide" aria-label="Personal tools"> <div class="vector-user-links-main"> <div id="p-vector-user-menu-preferences" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <div id="p-vector-user-menu-userpage" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <nav class="vector-appearance-landmark" aria-label="Appearance"> <div id="vector-appearance-dropdown" class="vector-dropdown " title="Change the appearance of the page's font size, width, and color" > <input type="checkbox" id="vector-appearance-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-appearance-dropdown" class="vector-dropdown-checkbox " aria-label="Appearance" > <label id="vector-appearance-dropdown-label" for="vector-appearance-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-appearance mw-ui-icon-wikimedia-appearance"></span> <span class="vector-dropdown-label-text">Appearance</span> </label> <div class="vector-dropdown-content"> <div id="vector-appearance-unpinned-container" class="vector-unpinned-container"> </div> </div> </div> </nav> <div id="p-vector-user-menu-notifications" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <div id="p-vector-user-menu-overflow" class="vector-menu mw-portlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-sitesupport-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="https://donate.wikimedia.org/wiki/Special:FundraiserRedirector?utm_source=donate&utm_medium=sidebar&utm_campaign=C13_en.wikipedia.org&uselang=en" class=""><span>Donate</span></a> </li> <li id="pt-createaccount-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="/w/index.php?title=Special:CreateAccount&returnto=Cryptographic+hash+function" title="You are encouraged to create an account and log in; however, it is not mandatory" class=""><span>Create account</span></a> </li> <li id="pt-login-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="/w/index.php?title=Special:UserLogin&returnto=Cryptographic+hash+function" title="You're encouraged to log in; however, it's not mandatory. [o]" accesskey="o" class=""><span>Log in</span></a> </li> </ul> </div> </div> </div> <div id="vector-user-links-dropdown" class="vector-dropdown vector-user-menu vector-button-flush-right vector-user-menu-logged-out" title="Log in and more options" > <input type="checkbox" id="vector-user-links-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-user-links-dropdown" class="vector-dropdown-checkbox " aria-label="Personal tools" > <label id="vector-user-links-dropdown-label" for="vector-user-links-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-ellipsis mw-ui-icon-wikimedia-ellipsis"></span> <span class="vector-dropdown-label-text">Personal tools</span> </label> <div class="vector-dropdown-content"> <div id="p-personal" class="vector-menu mw-portlet mw-portlet-personal user-links-collapsible-item" title="User menu" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-sitesupport" class="user-links-collapsible-item mw-list-item"><a href="https://donate.wikimedia.org/wiki/Special:FundraiserRedirector?utm_source=donate&utm_medium=sidebar&utm_campaign=C13_en.wikipedia.org&uselang=en"><span>Donate</span></a></li><li id="pt-createaccount" class="user-links-collapsible-item mw-list-item"><a href="/w/index.php?title=Special:CreateAccount&returnto=Cryptographic+hash+function" title="You are encouraged to create an account and log in; however, it is not mandatory"><span class="vector-icon mw-ui-icon-userAdd mw-ui-icon-wikimedia-userAdd"></span> <span>Create account</span></a></li><li id="pt-login" class="user-links-collapsible-item mw-list-item"><a href="/w/index.php?title=Special:UserLogin&returnto=Cryptographic+hash+function" title="You're encouraged to log in; however, it's not mandatory. [o]" accesskey="o"><span class="vector-icon mw-ui-icon-logIn mw-ui-icon-wikimedia-logIn"></span> <span>Log in</span></a></li> </ul> </div> </div> <div id="p-user-menu-anon-editor" class="vector-menu mw-portlet mw-portlet-user-menu-anon-editor" > <div class="vector-menu-heading"> Pages for logged out editors <a href="/wiki/Help:Introduction" aria-label="Learn more about editing"><span>learn more</span></a> </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-anoncontribs" class="mw-list-item"><a href="/wiki/Special:MyContributions" title="A list of edits made from this IP address [y]" accesskey="y"><span>Contributions</span></a></li><li id="pt-anontalk" class="mw-list-item"><a href="/wiki/Special:MyTalk" title="Discussion about edits from this IP address [n]" accesskey="n"><span>Talk</span></a></li> </ul> </div> </div> </div> </div> </nav> </div> </header> </div> <div class="mw-page-container"> <div class="mw-page-container-inner"> <div class="vector-sitenotice-container"> <div id="siteNotice"><!-- CentralNotice --></div> </div> <div class="vector-column-start"> <div class="vector-main-menu-container"> <div id="mw-navigation"> <nav id="mw-panel" class="vector-main-menu-landmark" aria-label="Site"> <div id="vector-main-menu-pinned-container" class="vector-pinned-container"> </div> </nav> </div> </div> <div class="vector-sticky-pinned-container"> <nav id="mw-panel-toc" aria-label="Contents" data-event-name="ui.sidebar-toc" class="mw-table-of-contents-container vector-toc-landmark"> <div id="vector-toc-pinned-container" class="vector-pinned-container"> <div id="vector-toc" class="vector-toc vector-pinnable-element"> <div class="vector-pinnable-header vector-toc-pinnable-header vector-pinnable-header-pinned" data-feature-name="toc-pinned" data-pinnable-element-id="vector-toc" > <h2 class="vector-pinnable-header-label">Contents</h2> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-toc.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-toc.unpin">hide</button> </div> <ul class="vector-toc-contents" id="mw-panel-toc-list"> <li id="toc-mw-content-text" class="vector-toc-list-item vector-toc-level-1"> <a href="#" class="vector-toc-link"> <div class="vector-toc-text">(Top)</div> </a> </li> <li id="toc-Properties" class="vector-toc-list-item vector-toc-level-1"> <a class="vector-toc-link" href="#Properties"> <div class="vector-toc-text"> <span class="vector-toc-numb">1</span> <span>Properties</span> </div> </a> <button aria-controls="toc-Properties-sublist" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-toc-toggle"> <span class="vector-icon mw-ui-icon-wikimedia-expand"></span> <span>Toggle Properties subsection</span> </button> <ul id="toc-Properties-sublist" class="vector-toc-list"> <li id="toc-Degree_of_difficulty" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Degree_of_difficulty"> <div class="vector-toc-text"> <span class="vector-toc-numb">1.1</span> <span>Degree of difficulty</span> </div> </a> <ul id="toc-Degree_of_difficulty-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-Illustration" class="vector-toc-list-item vector-toc-level-1"> <a class="vector-toc-link" href="#Illustration"> <div class="vector-toc-text"> <span class="vector-toc-numb">2</span> <span>Illustration</span> </div> </a> <ul id="toc-Illustration-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Applications" class="vector-toc-list-item vector-toc-level-1"> <a class="vector-toc-link" href="#Applications"> <div class="vector-toc-text"> <span class="vector-toc-numb">3</span> <span>Applications</span> </div> </a> <button aria-controls="toc-Applications-sublist" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-toc-toggle"> <span class="vector-icon mw-ui-icon-wikimedia-expand"></span> <span>Toggle Applications subsection</span> </button> <ul id="toc-Applications-sublist" class="vector-toc-list"> <li id="toc-Verifying_the_integrity_of_messages_and_files" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Verifying_the_integrity_of_messages_and_files"> <div class="vector-toc-text"> <span class="vector-toc-numb">3.1</span> <span>Verifying the integrity of messages and files</span> </div> </a> <ul id="toc-Verifying_the_integrity_of_messages_and_files-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Signature_generation_and_verification" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Signature_generation_and_verification"> <div class="vector-toc-text"> <span class="vector-toc-numb">3.2</span> <span>Signature generation and verification</span> </div> </a> <ul id="toc-Signature_generation_and_verification-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Password_verification" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Password_verification"> <div class="vector-toc-text"> <span class="vector-toc-numb">3.3</span> <span>Password verification</span> </div> </a> <ul id="toc-Password_verification-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Proof-of-work" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Proof-of-work"> <div class="vector-toc-text"> <span class="vector-toc-numb">3.4</span> <span>Proof-of-work</span> </div> </a> <ul id="toc-Proof-of-work-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-File_or_data_identifier" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#File_or_data_identifier"> <div class="vector-toc-text"> <span class="vector-toc-numb">3.5</span> <span>File or data identifier</span> </div> </a> <ul id="toc-File_or_data_identifier-sublist" class="vector-toc-list"> <li id="toc-Content-addressable_storage" class="vector-toc-list-item vector-toc-level-3"> <a class="vector-toc-link" href="#Content-addressable_storage"> <div class="vector-toc-text"> <span class="vector-toc-numb">3.5.1</span> <span>Content-addressable storage</span> </div> </a> <ul id="toc-Content-addressable_storage-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> </ul> </li> <li id="toc-Hash_functions_based_on_block_ciphers" class="vector-toc-list-item vector-toc-level-1"> <a class="vector-toc-link" href="#Hash_functions_based_on_block_ciphers"> <div class="vector-toc-text"> <span class="vector-toc-numb">4</span> <span>Hash functions based on block ciphers</span> </div> </a> <ul id="toc-Hash_functions_based_on_block_ciphers-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Hash_function_design" class="vector-toc-list-item vector-toc-level-1"> <a class="vector-toc-link" href="#Hash_function_design"> <div class="vector-toc-text"> <span class="vector-toc-numb">5</span> <span>Hash function design</span> </div> </a> <button aria-controls="toc-Hash_function_design-sublist" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-toc-toggle"> <span class="vector-icon mw-ui-icon-wikimedia-expand"></span> <span>Toggle Hash function design subsection</span> </button> <ul id="toc-Hash_function_design-sublist" class="vector-toc-list"> <li id="toc-Merkle–Damgård_construction" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Merkle–Damgård_construction"> <div class="vector-toc-text"> <span class="vector-toc-numb">5.1</span> <span>Merkle–Damgård construction</span> </div> </a> <ul id="toc-Merkle–Damgård_construction-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Wide_pipe_versus_narrow_pipe" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Wide_pipe_versus_narrow_pipe"> <div class="vector-toc-text"> <span class="vector-toc-numb">5.2</span> <span>Wide pipe versus narrow pipe</span> </div> </a> <ul id="toc-Wide_pipe_versus_narrow_pipe-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-Use_in_building_other_cryptographic_primitives" class="vector-toc-list-item vector-toc-level-1"> <a class="vector-toc-link" href="#Use_in_building_other_cryptographic_primitives"> <div class="vector-toc-text"> <span class="vector-toc-numb">6</span> <span>Use in building other cryptographic primitives</span> </div> </a> <ul id="toc-Use_in_building_other_cryptographic_primitives-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Concatenation" class="vector-toc-list-item vector-toc-level-1"> <a class="vector-toc-link" href="#Concatenation"> <div class="vector-toc-text"> <span class="vector-toc-numb">7</span> <span>Concatenation</span> </div> </a> <ul id="toc-Concatenation-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Cryptographic_hash_algorithms" class="vector-toc-list-item vector-toc-level-1"> <a class="vector-toc-link" href="#Cryptographic_hash_algorithms"> <div class="vector-toc-text"> <span class="vector-toc-numb">8</span> <span>Cryptographic hash algorithms</span> </div> </a> <button aria-controls="toc-Cryptographic_hash_algorithms-sublist" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-toc-toggle"> <span class="vector-icon mw-ui-icon-wikimedia-expand"></span> <span>Toggle Cryptographic hash algorithms subsection</span> </button> <ul id="toc-Cryptographic_hash_algorithms-sublist" class="vector-toc-list"> <li id="toc-MD5" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#MD5"> <div class="vector-toc-text"> <span class="vector-toc-numb">8.1</span> <span>MD5</span> </div> </a> <ul id="toc-MD5-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-SHA-1" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#SHA-1"> <div class="vector-toc-text"> <span class="vector-toc-numb">8.2</span> <span>SHA-1</span> </div> </a> <ul id="toc-SHA-1-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-RIPEMD-160" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#RIPEMD-160"> <div class="vector-toc-text"> <span class="vector-toc-numb">8.3</span> <span>RIPEMD-160</span> </div> </a> <ul id="toc-RIPEMD-160-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Whirlpool" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Whirlpool"> <div class="vector-toc-text"> <span class="vector-toc-numb">8.4</span> <span>Whirlpool</span> </div> </a> <ul id="toc-Whirlpool-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-SHA-2" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#SHA-2"> <div class="vector-toc-text"> <span class="vector-toc-numb">8.5</span> <span>SHA-2</span> </div> </a> <ul id="toc-SHA-2-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-SHA-3" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#SHA-3"> <div class="vector-toc-text"> <span class="vector-toc-numb">8.6</span> <span>SHA-3</span> </div> </a> <ul id="toc-SHA-3-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-BLAKE2" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#BLAKE2"> <div class="vector-toc-text"> <span class="vector-toc-numb">8.7</span> <span>BLAKE2</span> </div> </a> <ul id="toc-BLAKE2-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-BLAKE3" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#BLAKE3"> <div class="vector-toc-text"> <span class="vector-toc-numb">8.8</span> <span>BLAKE3</span> </div> </a> <ul id="toc-BLAKE3-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-Attacks_on_cryptographic_hash_algorithms" class="vector-toc-list-item vector-toc-level-1"> <a class="vector-toc-link" href="#Attacks_on_cryptographic_hash_algorithms"> <div class="vector-toc-text"> <span class="vector-toc-numb">9</span> <span>Attacks on cryptographic hash algorithms</span> </div> </a> <ul id="toc-Attacks_on_cryptographic_hash_algorithms-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Attacks_on_hashed_passwords" class="vector-toc-list-item vector-toc-level-1"> <a class="vector-toc-link" href="#Attacks_on_hashed_passwords"> <div class="vector-toc-text"> <span class="vector-toc-numb">10</span> <span>Attacks on hashed passwords</span> </div> </a> <ul id="toc-Attacks_on_hashed_passwords-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-See_also" class="vector-toc-list-item vector-toc-level-1"> <a class="vector-toc-link" href="#See_also"> <div class="vector-toc-text"> <span class="vector-toc-numb">11</span> <span>See also</span> </div> </a> <ul id="toc-See_also-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-References" class="vector-toc-list-item vector-toc-level-1"> <a class="vector-toc-link" href="#References"> <div class="vector-toc-text"> <span class="vector-toc-numb">12</span> <span>References</span> </div> </a> <button aria-controls="toc-References-sublist" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-toc-toggle"> <span class="vector-icon mw-ui-icon-wikimedia-expand"></span> <span>Toggle References subsection</span> </button> <ul id="toc-References-sublist" class="vector-toc-list"> <li id="toc-Citations" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Citations"> <div class="vector-toc-text"> <span class="vector-toc-numb">12.1</span> <span>Citations</span> </div> </a> <ul id="toc-Citations-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Sources" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Sources"> <div class="vector-toc-text"> <span class="vector-toc-numb">12.2</span> <span>Sources</span> </div> </a> <ul id="toc-Sources-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-External_links" class="vector-toc-list-item vector-toc-level-1"> <a class="vector-toc-link" href="#External_links"> <div class="vector-toc-text"> <span class="vector-toc-numb">13</span> <span>External links</span> </div> </a> <ul id="toc-External_links-sublist" class="vector-toc-list"> </ul> </li> </ul> </div> </div> </nav> </div> </div> <div class="mw-content-container"> <main id="content" class="mw-body"> <header class="mw-body-header vector-page-titlebar"> <nav aria-label="Contents" class="vector-toc-landmark"> <div id="vector-page-titlebar-toc" class="vector-dropdown vector-page-titlebar-toc vector-button-flush-left" > <input type="checkbox" id="vector-page-titlebar-toc-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-page-titlebar-toc" class="vector-dropdown-checkbox " aria-label="Toggle the table of contents" > <label id="vector-page-titlebar-toc-label" for="vector-page-titlebar-toc-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-listBullet mw-ui-icon-wikimedia-listBullet"></span> <span class="vector-dropdown-label-text">Toggle the table of contents</span> </label> <div class="vector-dropdown-content"> <div id="vector-page-titlebar-toc-unpinned-container" class="vector-unpinned-container"> </div> </div> </div> </nav> <h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-main">Cryptographic hash function</span></h1> <div id="p-lang-btn" class="vector-dropdown mw-portlet mw-portlet-lang" > <input type="checkbox" id="p-lang-btn-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-p-lang-btn" class="vector-dropdown-checkbox mw-interlanguage-selector" aria-label="Go to an article in another language. Available in 31 languages" > <label id="p-lang-btn-label" for="p-lang-btn-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--action-progressive mw-portlet-lang-heading-31" aria-hidden="true" ><span class="vector-icon mw-ui-icon-language-progressive mw-ui-icon-wikimedia-language-progressive"></span> <span class="vector-dropdown-label-text">31 languages</span> </label> <div class="vector-dropdown-content"> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li class="interlanguage-link interwiki-ar mw-list-item"><a href="https://ar.wikipedia.org/wiki/%D8%AF%D8%A7%D9%84%D8%A9_%D8%AA%D9%84%D8%A8%D9%8A%D8%AF_%D8%AA%D8%B9%D9%85%D9%88%D9%8A%D8%A9" title="دالة تلبيد تعموية – Arabic" lang="ar" hreflang="ar" data-title="دالة تلبيد تعموية" data-language-autonym="العربية" data-language-local-name="Arabic" class="interlanguage-link-target"><span>العربية</span></a></li><li class="interlanguage-link interwiki-ast mw-list-item"><a href="https://ast.wikipedia.org/wiki/Funci%C3%B3n_hash_criptogr%C3%A1fica" title="Función hash criptográfica – Asturian" lang="ast" hreflang="ast" data-title="Función hash criptográfica" data-language-autonym="Asturianu" data-language-local-name="Asturian" class="interlanguage-link-target"><span>Asturianu</span></a></li><li class="interlanguage-link interwiki-bn mw-list-item"><a href="https://bn.wikipedia.org/wiki/%E0%A6%A4%E0%A6%A5%E0%A7%8D%E0%A6%AF%E0%A6%97%E0%A7%81%E0%A6%AA%E0%A7%8D%E0%A6%A4%E0%A6%BF-%E0%A6%AC%E0%A6%BF%E0%A6%B7%E0%A6%AF%E0%A6%BC%E0%A6%95_%E0%A6%B9%E0%A7%8D%E0%A6%AF%E0%A6%BE%E0%A6%B6_%E0%A6%AB%E0%A6%BE%E0%A6%82%E0%A6%B6%E0%A6%A8" title="তথ্যগুপ্তি-বিষয়ক হ্যাশ ফাংশন – Bangla" lang="bn" hreflang="bn" data-title="তথ্যগুপ্তি-বিষয়ক হ্যাশ ফাংশন" data-language-autonym="বাংলা" data-language-local-name="Bangla" class="interlanguage-link-target"><span>বাংলা</span></a></li><li class="interlanguage-link interwiki-ca mw-list-item"><a href="https://ca.wikipedia.org/wiki/Funci%C3%B3_hash_criptogr%C3%A0fica" title="Funció hash criptogràfica – Catalan" lang="ca" hreflang="ca" data-title="Funció hash criptogràfica" data-language-autonym="Català" data-language-local-name="Catalan" class="interlanguage-link-target"><span>Català</span></a></li><li class="interlanguage-link interwiki-cs mw-list-item"><a href="https://cs.wikipedia.org/wiki/Kryptografick%C3%A1_ha%C5%A1ovac%C3%AD_funkce" title="Kryptografická hašovací funkce – Czech" lang="cs" hreflang="cs" data-title="Kryptografická hašovací funkce" data-language-autonym="Čeština" data-language-local-name="Czech" class="interlanguage-link-target"><span>Čeština</span></a></li><li class="interlanguage-link interwiki-de mw-list-item"><a href="https://de.wikipedia.org/wiki/Kryptographische_Hashfunktion" title="Kryptographische Hashfunktion – German" lang="de" hreflang="de" data-title="Kryptographische Hashfunktion" data-language-autonym="Deutsch" data-language-local-name="German" class="interlanguage-link-target"><span>Deutsch</span></a></li><li class="interlanguage-link interwiki-el mw-list-item"><a href="https://el.wikipedia.org/wiki/%CE%9A%CF%81%CF%85%CF%80%CF%84%CE%BF%CE%B3%CF%81%CE%B1%CF%86%CE%B9%CE%BA%CE%AE_%CE%A3%CF%85%CE%BD%CE%AC%CF%81%CF%84%CE%B7%CF%83%CE%B7_%CE%9A%CE%B1%CF%84%CE%B1%CF%84%CE%B5%CE%BC%CE%B1%CF%87%CE%B9%CF%83%CE%BC%CE%BF%CF%8D" title="Κρυπτογραφική Συνάρτηση Κατατεμαχισμού – Greek" lang="el" hreflang="el" data-title="Κρυπτογραφική Συνάρτηση Κατατεμαχισμού" data-language-autonym="Ελληνικά" data-language-local-name="Greek" class="interlanguage-link-target"><span>Ελληνικά</span></a></li><li class="interlanguage-link interwiki-es mw-list-item"><a href="https://es.wikipedia.org/wiki/Funci%C3%B3n_hash_criptogr%C3%A1fica" title="Función hash criptográfica – Spanish" lang="es" hreflang="es" data-title="Función hash criptográfica" data-language-autonym="Español" data-language-local-name="Spanish" class="interlanguage-link-target"><span>Español</span></a></li><li class="interlanguage-link interwiki-fa mw-list-item"><a href="https://fa.wikipedia.org/wiki/%D8%AA%D8%A7%D8%A8%D8%B9_%D9%87%D8%B4_%D8%B1%D9%85%D8%B2%D9%86%DA%AF%D8%A7%D8%B1%DB%8C" title="تابع هش رمزنگاری – Persian" lang="fa" hreflang="fa" data-title="تابع هش رمزنگاری" data-language-autonym="فارسی" data-language-local-name="Persian" class="interlanguage-link-target"><span>فارسی</span></a></li><li class="interlanguage-link interwiki-fr mw-list-item"><a href="https://fr.wikipedia.org/wiki/Fonction_de_hachage_cryptographique" title="Fonction de hachage cryptographique – French" lang="fr" hreflang="fr" data-title="Fonction de hachage cryptographique" data-language-autonym="Français" data-language-local-name="French" class="interlanguage-link-target"><span>Français</span></a></li><li class="interlanguage-link interwiki-ko mw-list-item"><a href="https://ko.wikipedia.org/wiki/%EC%95%94%ED%98%B8%ED%99%94_%ED%95%B4%EC%8B%9C_%ED%95%A8%EC%88%98" title="암호화 해시 함수 – Korean" lang="ko" hreflang="ko" data-title="암호화 해시 함수" data-language-autonym="한국어" data-language-local-name="Korean" class="interlanguage-link-target"><span>한국어</span></a></li><li class="interlanguage-link interwiki-id mw-list-item"><a href="https://id.wikipedia.org/wiki/Hash_kriptografis" title="Hash kriptografis – Indonesian" lang="id" hreflang="id" data-title="Hash kriptografis" data-language-autonym="Bahasa Indonesia" data-language-local-name="Indonesian" class="interlanguage-link-target"><span>Bahasa Indonesia</span></a></li><li class="interlanguage-link interwiki-it mw-list-item"><a href="https://it.wikipedia.org/wiki/Funzione_crittografica_di_hash" title="Funzione crittografica di hash – Italian" lang="it" hreflang="it" data-title="Funzione crittografica di hash" data-language-autonym="Italiano" data-language-local-name="Italian" class="interlanguage-link-target"><span>Italiano</span></a></li><li class="interlanguage-link interwiki-he mw-list-item"><a href="https://he.wikipedia.org/wiki/%D7%A4%D7%95%D7%A0%D7%A7%D7%A6%D7%99%D7%99%D7%AA_%D7%92%D7%99%D7%91%D7%95%D7%91_%D7%A7%D7%A8%D7%99%D7%A4%D7%98%D7%95%D7%92%D7%A8%D7%A4%D7%99%D7%AA" title="פונקציית גיבוב קריפטוגרפית – Hebrew" lang="he" hreflang="he" data-title="פונקציית גיבוב קריפטוגרפית" data-language-autonym="עברית" data-language-local-name="Hebrew" class="interlanguage-link-target"><span>עברית</span></a></li><li class="interlanguage-link interwiki-lv mw-list-item"><a href="https://lv.wikipedia.org/wiki/Kriptogr%C4%81fiska_jauc%C4%93jfunkcija" title="Kriptogrāfiska jaucējfunkcija – Latvian" lang="lv" hreflang="lv" data-title="Kriptogrāfiska jaucējfunkcija" data-language-autonym="Latviešu" data-language-local-name="Latvian" class="interlanguage-link-target"><span>Latviešu</span></a></li><li class="interlanguage-link interwiki-lt mw-list-item"><a href="https://lt.wikipedia.org/wiki/Santraukos_funkcija" title="Santraukos funkcija – Lithuanian" lang="lt" hreflang="lt" data-title="Santraukos funkcija" data-language-autonym="Lietuvių" data-language-local-name="Lithuanian" class="interlanguage-link-target"><span>Lietuvių</span></a></li><li class="interlanguage-link interwiki-hu mw-list-item"><a href="https://hu.wikipedia.org/wiki/Kriptogr%C3%A1fiai_hash-f%C3%BCggv%C3%A9ny" title="Kriptográfiai hash-függvény – Hungarian" lang="hu" hreflang="hu" data-title="Kriptográfiai hash-függvény" data-language-autonym="Magyar" data-language-local-name="Hungarian" class="interlanguage-link-target"><span>Magyar</span></a></li><li class="interlanguage-link interwiki-ml mw-list-item"><a href="https://ml.wikipedia.org/wiki/%E0%B4%97%E0%B5%82%E0%B4%A2%E0%B4%B6%E0%B4%BE%E0%B4%B8%E0%B5%8D%E0%B4%A4%E0%B5%8D%E0%B4%B0_%E0%B4%B9%E0%B4%BE%E0%B4%B7%E0%B5%8D_%E0%B4%AB%E0%B4%99%E0%B5%8D%E0%B4%B7%E0%B5%BB" title="ഗൂഢശാസ്ത്ര ഹാഷ് ഫങ്ഷൻ – Malayalam" lang="ml" hreflang="ml" data-title="ഗൂഢശാസ്ത്ര ഹാഷ് ഫങ്ഷൻ" data-language-autonym="മലയാളം" data-language-local-name="Malayalam" class="interlanguage-link-target"><span>മലയാളം</span></a></li><li class="interlanguage-link interwiki-ja mw-list-item"><a href="https://ja.wikipedia.org/wiki/%E6%9A%97%E5%8F%B7%E5%AD%A6%E7%9A%84%E3%83%8F%E3%83%83%E3%82%B7%E3%83%A5%E9%96%A2%E6%95%B0" title="暗号学的ハッシュ関数 – Japanese" lang="ja" hreflang="ja" data-title="暗号学的ハッシュ関数" data-language-autonym="日本語" data-language-local-name="Japanese" class="interlanguage-link-target"><span>日本語</span></a></li><li class="interlanguage-link interwiki-pt mw-list-item"><a href="https://pt.wikipedia.org/wiki/Fun%C3%A7%C3%A3o_hash_criptogr%C3%A1fica" title="Função hash criptográfica – Portuguese" lang="pt" hreflang="pt" data-title="Função hash criptográfica" data-language-autonym="Português" data-language-local-name="Portuguese" class="interlanguage-link-target"><span>Português</span></a></li><li class="interlanguage-link interwiki-ru mw-list-item"><a href="https://ru.wikipedia.org/wiki/%D0%9A%D1%80%D0%B8%D0%BF%D1%82%D0%BE%D0%B3%D1%80%D0%B0%D1%84%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F_%D1%85%D0%B5%D1%88-%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D1%8F" title="Криптографическая хеш-функция – Russian" lang="ru" hreflang="ru" data-title="Криптографическая хеш-функция" data-language-autonym="Русский" data-language-local-name="Russian" class="interlanguage-link-target"><span>Русский</span></a></li><li class="interlanguage-link interwiki-simple mw-list-item"><a href="https://simple.wikipedia.org/wiki/Cryptographic_hash_function" title="Cryptographic hash function – Simple English" lang="en-simple" hreflang="en-simple" data-title="Cryptographic hash function" data-language-autonym="Simple English" data-language-local-name="Simple English" class="interlanguage-link-target"><span>Simple English</span></a></li><li class="interlanguage-link interwiki-sk mw-list-item"><a href="https://sk.wikipedia.org/wiki/Kryptografick%C3%A1_ha%C5%A1ovacia_funkcia" title="Kryptografická hašovacia funkcia – Slovak" lang="sk" hreflang="sk" data-title="Kryptografická hašovacia funkcia" data-language-autonym="Slovenčina" data-language-local-name="Slovak" class="interlanguage-link-target"><span>Slovenčina</span></a></li><li class="interlanguage-link interwiki-sr mw-list-item"><a href="https://sr.wikipedia.org/wiki/%D0%9A%D1%80%D0%B8%D0%BF%D1%82%D0%BE%D0%B3%D1%80%D0%B0%D1%84%D1%81%D0%BA%D0%B0_%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D1%98%D0%B0_%D0%B7%D0%B0_%D1%81%D0%B0%D0%B6%D0%B8%D0%BC%D0%B0%D1%9A%D0%B5" title="Криптографска функција за сажимање – Serbian" lang="sr" hreflang="sr" data-title="Криптографска функција за сажимање" data-language-autonym="Српски / srpski" data-language-local-name="Serbian" class="interlanguage-link-target"><span>Српски / srpski</span></a></li><li class="interlanguage-link interwiki-fi mw-list-item"><a href="https://fi.wikipedia.org/wiki/Kryptografinen_tiiviste" title="Kryptografinen tiiviste – Finnish" lang="fi" hreflang="fi" data-title="Kryptografinen tiiviste" data-language-autonym="Suomi" data-language-local-name="Finnish" class="interlanguage-link-target"><span>Suomi</span></a></li><li class="interlanguage-link interwiki-th mw-list-item"><a href="https://th.wikipedia.org/wiki/%E0%B8%9F%E0%B8%B1%E0%B8%87%E0%B8%81%E0%B9%8C%E0%B8%8A%E0%B8%B1%E0%B8%99%E0%B9%81%E0%B8%AE%E0%B8%8A%E0%B9%80%E0%B8%82%E0%B9%89%E0%B8%B2%E0%B8%A3%E0%B8%AB%E0%B8%B1%E0%B8%AA" title="ฟังก์ชันแฮชเข้ารหัส – Thai" lang="th" hreflang="th" data-title="ฟังก์ชันแฮชเข้ารหัส" data-language-autonym="ไทย" data-language-local-name="Thai" class="interlanguage-link-target"><span>ไทย</span></a></li><li class="interlanguage-link interwiki-tr mw-list-item"><a href="https://tr.wikipedia.org/wiki/Kriptografik_%C3%B6zet_fonksiyonu" title="Kriptografik özet fonksiyonu – Turkish" lang="tr" hreflang="tr" data-title="Kriptografik özet fonksiyonu" data-language-autonym="Türkçe" data-language-local-name="Turkish" class="interlanguage-link-target"><span>Türkçe</span></a></li><li class="interlanguage-link interwiki-uk mw-list-item"><a href="https://uk.wikipedia.org/wiki/%D0%9A%D1%80%D0%B8%D0%BF%D1%82%D0%BE%D0%B3%D1%80%D0%B0%D1%84%D1%96%D1%87%D0%BD%D0%B0_%D0%B3%D0%B5%D1%88-%D1%84%D1%83%D0%BD%D0%BA%D1%86%D1%96%D1%8F" title="Криптографічна геш-функція – Ukrainian" lang="uk" hreflang="uk" data-title="Криптографічна геш-функція" data-language-autonym="Українська" data-language-local-name="Ukrainian" class="interlanguage-link-target"><span>Українська</span></a></li><li class="interlanguage-link interwiki-vi mw-list-item"><a href="https://vi.wikipedia.org/wiki/H%C3%A0m_b%C4%83m_m%E1%BA%ADt_m%C3%A3" title="Hàm băm mật mã – Vietnamese" lang="vi" hreflang="vi" data-title="Hàm băm mật mã" data-language-autonym="Tiếng Việt" data-language-local-name="Vietnamese" class="interlanguage-link-target"><span>Tiếng Việt</span></a></li><li class="interlanguage-link interwiki-zh-yue mw-list-item"><a href="https://zh-yue.wikipedia.org/wiki/%E5%AF%86%E7%A2%BC%E9%9B%9C%E6%B9%8A%E5%87%BD%E6%95%B8" title="密碼雜湊函數 – Cantonese" lang="yue" hreflang="yue" data-title="密碼雜湊函數" data-language-autonym="粵語" data-language-local-name="Cantonese" class="interlanguage-link-target"><span>粵語</span></a></li><li class="interlanguage-link interwiki-zh mw-list-item"><a href="https://zh.wikipedia.org/wiki/%E5%AF%86%E7%A2%BC%E9%9B%9C%E6%B9%8A%E5%87%BD%E6%95%B8" title="密碼雜湊函數 – Chinese" lang="zh" hreflang="zh" data-title="密碼雜湊函數" data-language-autonym="中文" data-language-local-name="Chinese" class="interlanguage-link-target"><span>中文</span></a></li> </ul> <div class="after-portlet after-portlet-lang"><span class="wb-langlinks-edit wb-langlinks-link"><a href="https://www.wikidata.org/wiki/Special:EntityPage/Q477202#sitelinks-wikipedia" title="Edit interlanguage links" class="wbc-editpage">Edit links</a></span></div> </div> </div> </div> </header> <div class="vector-page-toolbar"> <div class="vector-page-toolbar-container"> <div id="left-navigation"> <nav aria-label="Namespaces"> <div id="p-associated-pages" class="vector-menu vector-menu-tabs mw-portlet mw-portlet-associated-pages" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-nstab-main" class="selected vector-tab-noicon mw-list-item"><a href="/wiki/Cryptographic_hash_function" title="View the content page [c]" accesskey="c"><span>Article</span></a></li><li id="ca-talk" class="vector-tab-noicon mw-list-item"><a href="/wiki/Talk:Cryptographic_hash_function" rel="discussion" title="Discuss improvements to the content page [t]" accesskey="t"><span>Talk</span></a></li> </ul> </div> </div> <div id="vector-variants-dropdown" class="vector-dropdown emptyPortlet" > <input type="checkbox" id="vector-variants-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-variants-dropdown" class="vector-dropdown-checkbox " aria-label="Change language variant" > <label id="vector-variants-dropdown-label" for="vector-variants-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet" aria-hidden="true" ><span class="vector-dropdown-label-text">English</span> </label> <div class="vector-dropdown-content"> <div id="p-variants" class="vector-menu mw-portlet mw-portlet-variants emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> </div> </div> </nav> </div> <div id="right-navigation" class="vector-collapsible"> <nav aria-label="Views"> <div id="p-views" class="vector-menu vector-menu-tabs mw-portlet mw-portlet-views" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-view" class="selected vector-tab-noicon mw-list-item"><a href="/wiki/Cryptographic_hash_function"><span>Read</span></a></li><li id="ca-edit" class="vector-tab-noicon mw-list-item"><a href="/w/index.php?title=Cryptographic_hash_function&action=edit" title="Edit this page [e]" accesskey="e"><span>Edit</span></a></li><li id="ca-history" class="vector-tab-noicon mw-list-item"><a href="/w/index.php?title=Cryptographic_hash_function&action=history" title="Past revisions of this page [h]" accesskey="h"><span>View history</span></a></li> </ul> </div> </div> </nav> <nav class="vector-page-tools-landmark" aria-label="Page tools"> <div id="vector-page-tools-dropdown" class="vector-dropdown vector-page-tools-dropdown" > <input type="checkbox" id="vector-page-tools-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-page-tools-dropdown" class="vector-dropdown-checkbox " aria-label="Tools" > <label id="vector-page-tools-dropdown-label" for="vector-page-tools-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet" aria-hidden="true" ><span class="vector-dropdown-label-text">Tools</span> </label> <div class="vector-dropdown-content"> <div id="vector-page-tools-unpinned-container" class="vector-unpinned-container"> <div id="vector-page-tools" class="vector-page-tools vector-pinnable-element"> <div class="vector-pinnable-header vector-page-tools-pinnable-header vector-pinnable-header-unpinned" data-feature-name="page-tools-pinned" data-pinnable-element-id="vector-page-tools" data-pinned-container-id="vector-page-tools-pinned-container" data-unpinned-container-id="vector-page-tools-unpinned-container" > <div class="vector-pinnable-header-label">Tools</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-page-tools.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-page-tools.unpin">hide</button> </div> <div id="p-cactions" class="vector-menu mw-portlet mw-portlet-cactions emptyPortlet vector-has-collapsible-items" title="More options" > <div class="vector-menu-heading"> Actions </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-more-view" class="selected vector-more-collapsible-item mw-list-item"><a href="/wiki/Cryptographic_hash_function"><span>Read</span></a></li><li id="ca-more-edit" class="vector-more-collapsible-item mw-list-item"><a href="/w/index.php?title=Cryptographic_hash_function&action=edit" title="Edit this page [e]" accesskey="e"><span>Edit</span></a></li><li id="ca-more-history" class="vector-more-collapsible-item mw-list-item"><a href="/w/index.php?title=Cryptographic_hash_function&action=history"><span>View history</span></a></li> </ul> </div> </div> <div id="p-tb" class="vector-menu mw-portlet mw-portlet-tb" > <div class="vector-menu-heading"> General </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="t-whatlinkshere" class="mw-list-item"><a href="/wiki/Special:WhatLinksHere/Cryptographic_hash_function" title="List of all English Wikipedia pages containing links to this page [j]" accesskey="j"><span>What links here</span></a></li><li id="t-recentchangeslinked" class="mw-list-item"><a href="/wiki/Special:RecentChangesLinked/Cryptographic_hash_function" rel="nofollow" title="Recent changes in pages linked from this page [k]" accesskey="k"><span>Related changes</span></a></li><li id="t-upload" class="mw-list-item"><a href="/wiki/Wikipedia:File_Upload_Wizard" title="Upload files [u]" accesskey="u"><span>Upload file</span></a></li><li id="t-specialpages" class="mw-list-item"><a href="/wiki/Special:SpecialPages" title="A list of all special pages [q]" accesskey="q"><span>Special pages</span></a></li><li id="t-permalink" class="mw-list-item"><a href="/w/index.php?title=Cryptographic_hash_function&oldid=1257065475" title="Permanent link to this revision of this page"><span>Permanent link</span></a></li><li id="t-info" class="mw-list-item"><a href="/w/index.php?title=Cryptographic_hash_function&action=info" title="More information about this page"><span>Page information</span></a></li><li id="t-cite" class="mw-list-item"><a href="/w/index.php?title=Special:CiteThisPage&page=Cryptographic_hash_function&id=1257065475&wpFormIdentifier=titleform" title="Information on how to cite this page"><span>Cite this page</span></a></li><li id="t-urlshortener" class="mw-list-item"><a href="/w/index.php?title=Special:UrlShortener&url=https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FCryptographic_hash_function"><span>Get shortened URL</span></a></li><li id="t-urlshortener-qrcode" class="mw-list-item"><a href="/w/index.php?title=Special:QrCode&url=https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FCryptographic_hash_function"><span>Download QR code</span></a></li> </ul> </div> </div> <div id="p-coll-print_export" class="vector-menu mw-portlet mw-portlet-coll-print_export" > <div class="vector-menu-heading"> Print/export </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="coll-download-as-rl" class="mw-list-item"><a href="/w/index.php?title=Special:DownloadAsPdf&page=Cryptographic_hash_function&action=show-download-screen" title="Download this page as a PDF file"><span>Download as PDF</span></a></li><li id="t-print" class="mw-list-item"><a href="/w/index.php?title=Cryptographic_hash_function&printable=yes" title="Printable version of this page [p]" accesskey="p"><span>Printable version</span></a></li> </ul> </div> </div> <div id="p-wikibase-otherprojects" class="vector-menu mw-portlet mw-portlet-wikibase-otherprojects" > <div class="vector-menu-heading"> In other projects </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li class="wb-otherproject-link wb-otherproject-commons mw-list-item"><a href="https://commons.wikimedia.org/wiki/Category:Cryptographic_hash_function" hreflang="en"><span>Wikimedia Commons</span></a></li><li id="t-wikibase" class="wb-otherproject-link wb-otherproject-wikibase-dataitem mw-list-item"><a href="https://www.wikidata.org/wiki/Special:EntityPage/Q477202" title="Structured data on this page hosted by Wikidata [g]" accesskey="g"><span>Wikidata item</span></a></li> </ul> </div> </div> </div> </div> </div> </div> </nav> </div> </div> </div> <div class="vector-column-end"> <div class="vector-sticky-pinned-container"> <nav class="vector-page-tools-landmark" aria-label="Page tools"> <div id="vector-page-tools-pinned-container" class="vector-pinned-container"> </div> </nav> <nav class="vector-appearance-landmark" aria-label="Appearance"> <div id="vector-appearance-pinned-container" class="vector-pinned-container"> <div id="vector-appearance" class="vector-appearance vector-pinnable-element"> <div class="vector-pinnable-header vector-appearance-pinnable-header vector-pinnable-header-pinned" data-feature-name="appearance-pinned" data-pinnable-element-id="vector-appearance" data-pinned-container-id="vector-appearance-pinned-container" data-unpinned-container-id="vector-appearance-unpinned-container" > <div class="vector-pinnable-header-label">Appearance</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-appearance.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-appearance.unpin">hide</button> </div> </div> </div> </nav> </div> </div> <div id="bodyContent" class="vector-body" aria-labelledby="firstHeading" data-mw-ve-target-container> <div class="vector-body-before-content"> <div class="mw-indicators"> </div> <div id="siteSub" class="noprint">From Wikipedia, the free encyclopedia</div> </div> <div id="contentSub"><div id="mw-content-subtitle"><span class="mw-redirectedfrom">(Redirected from <a href="/w/index.php?title=One-way_hash_function&redirect=no" class="mw-redirect" title="One-way hash function">One-way hash function</a>)</span></div></div> <div id="mw-content-text" class="mw-body-content"><div class="mw-content-ltr mw-parser-output" lang="en" dir="ltr"><div class="shortdescription nomobile noexcerpt noprint searchaux" style="display:none">Hash function that is suitable for use in cryptography</div> <style data-mw-deduplicate="TemplateStyles:r1251242444">.mw-parser-output .ambox{border:1px solid #a2a9b1;border-left:10px solid #36c;background-color:#fbfbfb;box-sizing:border-box}.mw-parser-output .ambox+link+.ambox,.mw-parser-output .ambox+link+style+.ambox,.mw-parser-output .ambox+link+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+style+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+link+.ambox{margin-top:-1px}html body.mediawiki .mw-parser-output .ambox.mbox-small-left{margin:4px 1em 4px 0;overflow:hidden;width:238px;border-collapse:collapse;font-size:88%;line-height:1.25em}.mw-parser-output .ambox-speedy{border-left:10px solid #b32424;background-color:#fee7e6}.mw-parser-output .ambox-delete{border-left:10px solid #b32424}.mw-parser-output .ambox-content{border-left:10px solid #f28500}.mw-parser-output .ambox-style{border-left:10px solid #fc3}.mw-parser-output .ambox-move{border-left:10px solid #9932cc}.mw-parser-output .ambox-protection{border-left:10px solid #a2a9b1}.mw-parser-output .ambox .mbox-text{border:none;padding:0.25em 0.5em;width:100%}.mw-parser-output .ambox .mbox-image{border:none;padding:2px 0 2px 0.5em;text-align:center}.mw-parser-output .ambox .mbox-imageright{border:none;padding:2px 0.5em 2px 0;text-align:center}.mw-parser-output .ambox .mbox-empty-cell{border:none;padding:0;width:1px}.mw-parser-output .ambox .mbox-image-div{width:52px}@media(min-width:720px){.mw-parser-output .ambox{margin:0 10%}}@media print{body.ns-0 .mw-parser-output .ambox{display:none!important}}</style><table class="box-More_citations_needed plainlinks metadata ambox ambox-content ambox-Refimprove" role="presentation"><tbody><tr><td class="mbox-image"><div class="mbox-image-div"><span typeof="mw:File"><a href="/wiki/File:Question_book-new.svg" class="mw-file-description"><img alt="" src="//upload.wikimedia.org/wikipedia/en/thumb/9/99/Question_book-new.svg/50px-Question_book-new.svg.png" decoding="async" width="50" height="39" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/9/99/Question_book-new.svg/75px-Question_book-new.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/9/99/Question_book-new.svg/100px-Question_book-new.svg.png 2x" data-file-width="512" data-file-height="399" /></a></span></div></td><td class="mbox-text"><div class="mbox-text-span">This article <b>needs additional citations for <a href="/wiki/Wikipedia:Verifiability" title="Wikipedia:Verifiability">verification</a></b>.<span class="hide-when-compact"> Please help <a href="/wiki/Special:EditPage/Cryptographic_hash_function" title="Special:EditPage/Cryptographic hash function">improve this article</a> by <a href="/wiki/Help:Referencing_for_beginners" title="Help:Referencing for beginners">adding citations to reliable sources</a>. Unsourced material may be challenged and removed.<br /><small><span class="plainlinks"><i>Find sources:</i> <a rel="nofollow" class="external text" href="https://www.google.com/search?as_eq=wikipedia&q=%22Cryptographic+hash+function%22">"Cryptographic hash function"</a> – <a rel="nofollow" class="external text" href="https://www.google.com/search?tbm=nws&q=%22Cryptographic+hash+function%22+-wikipedia&tbs=ar:1">news</a> <b>·</b> <a rel="nofollow" class="external text" href="https://www.google.com/search?&q=%22Cryptographic+hash+function%22&tbs=bkt:s&tbm=bks">newspapers</a> <b>·</b> <a rel="nofollow" class="external text" href="https://www.google.com/search?tbs=bks:1&q=%22Cryptographic+hash+function%22+-wikipedia">books</a> <b>·</b> <a rel="nofollow" class="external text" href="https://scholar.google.com/scholar?q=%22Cryptographic+hash+function%22">scholar</a> <b>·</b> <a rel="nofollow" class="external text" href="https://www.jstor.org/action/doBasicSearch?Query=%22Cryptographic+hash+function%22&acc=on&wc=on">JSTOR</a></span></small></span> <span class="date-container"><i>(<span class="date">May 2016</span>)</i></span><span class="hide-when-compact"><i> (<small><a href="/wiki/Help:Maintenance_template_removal" title="Help:Maintenance template removal">Learn how and when to remove this message</a></small>)</i></span></div></td></tr></tbody></table> <figure class="mw-halign-right" typeof="mw:File/Thumb"><a href="/wiki/File:Cryptographic_Hash_Function.svg" class="mw-file-description"><img src="//upload.wikimedia.org/wikipedia/commons/thumb/2/2b/Cryptographic_Hash_Function.svg/375px-Cryptographic_Hash_Function.svg.png" decoding="async" width="375" height="272" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/2/2b/Cryptographic_Hash_Function.svg/563px-Cryptographic_Hash_Function.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/2/2b/Cryptographic_Hash_Function.svg/750px-Cryptographic_Hash_Function.svg.png 2x" data-file-width="740" data-file-height="536" /></a><figcaption>A cryptographic hash function (specifically <a href="/wiki/SHA-1" title="SHA-1">SHA-1</a>) at work. A small change in the input (in the word "over") drastically changes the output (digest). This is called the <a href="/wiki/Avalanche_effect" title="Avalanche effect">avalanche effect</a>.</figcaption></figure> <style data-mw-deduplicate="TemplateStyles:r1257001546">.mw-parser-output .infobox-subbox{padding:0;border:none;margin:-3px;width:auto;min-width:100%;font-size:100%;clear:none;float:none;background-color:transparent}.mw-parser-output .infobox-3cols-child{margin:auto}.mw-parser-output .infobox .navbar{font-size:100%}@media screen{html.skin-theme-clientpref-night .mw-parser-output .infobox-full-data:not(.notheme)>div:not(.notheme)[style]{background:#1f1f23!important;color:#f8f9fa}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .infobox-full-data:not(.notheme) div:not(.notheme){background:#1f1f23!important;color:#f8f9fa}}@media(min-width:640px){body.skin--responsive .mw-parser-output .infobox-table{display:table!important}body.skin--responsive .mw-parser-output .infobox-table>caption{display:table-caption!important}body.skin--responsive .mw-parser-output .infobox-table>tbody{display:table-row-group}body.skin--responsive .mw-parser-output .infobox-table tr{display:table-row!important}body.skin--responsive .mw-parser-output .infobox-table th,body.skin--responsive .mw-parser-output .infobox-table td{padding-left:inherit;padding-right:inherit}}</style><table class="infobox" style="width:18em; text-align:center; font-size:95%;"><tbody><tr><th colspan="2" class="infobox-above" style="padding-bottom:0.3em; background:transparent; line-height:1.1em; font-size:125%; font-weight:bold;"><a href="/wiki/Secure_Hash_Algorithms" title="Secure Hash Algorithms">Secure Hash Algorithms</a></th></tr><tr><th colspan="2" class="infobox-header" style="background:#E7 C6A5;">Concepts</th></tr><tr><td colspan="2" class="infobox-full-data" style="line-height:1.4em;"><a class="mw-selflink selflink">hash functions</a>, <a href="/wiki/Secure_Hash_Algorithms" title="Secure Hash Algorithms">SHA</a>, <a href="/wiki/Digital_Signature_Algorithm" title="Digital Signature Algorithm">DSA</a></td></tr><tr><th colspan="2" class="infobox-header" style="background:#E7 C6A5;">Main standards</th></tr><tr><td colspan="2" class="infobox-full-data" style="line-height:1.4em;"><a href="/wiki/SHA-0" class="mw-redirect" title="SHA-0">SHA-0</a>, <a href="/wiki/SHA-1" title="SHA-1">SHA-1</a>, <a href="/wiki/SHA-2" title="SHA-2">SHA-2</a>, <a href="/wiki/SHA-3" title="SHA-3">SHA-3</a> <hr /></td></tr><tr><td colspan="2" class="infobox-navbar"><style data-mw-deduplicate="TemplateStyles:r1129693374">.mw-parser-output .hlist dl,.mw-parser-output .hlist ol,.mw-parser-output .hlist ul{margin:0;padding:0}.mw-parser-output .hlist dd,.mw-parser-output .hlist dt,.mw-parser-output .hlist li{margin:0;display:inline}.mw-parser-output .hlist.inline,.mw-parser-output .hlist.inline dl,.mw-parser-output .hlist.inline ol,.mw-parser-output .hlist.inline ul,.mw-parser-output .hlist dl dl,.mw-parser-output .hlist dl ol,.mw-parser-output .hlist dl ul,.mw-parser-output .hlist ol dl,.mw-parser-output .hlist ol ol,.mw-parser-output .hlist ol ul,.mw-parser-output .hlist ul dl,.mw-parser-output .hlist ul ol,.mw-parser-output .hlist ul ul{display:inline}.mw-parser-output .hlist .mw-empty-li{display:none}.mw-parser-output .hlist dt::after{content:": "}.mw-parser-output .hlist dd::after,.mw-parser-output .hlist li::after{content:" · ";font-weight:bold}.mw-parser-output .hlist dd:last-child::after,.mw-parser-output .hlist dt:last-child::after,.mw-parser-output .hlist li:last-child::after{content:none}.mw-parser-output .hlist dd dd:first-child::before,.mw-parser-output .hlist dd dt:first-child::before,.mw-parser-output .hlist dd li:first-child::before,.mw-parser-output .hlist dt dd:first-child::before,.mw-parser-output .hlist dt dt:first-child::before,.mw-parser-output .hlist dt li:first-child::before,.mw-parser-output .hlist li dd:first-child::before,.mw-parser-output .hlist li dt:first-child::before,.mw-parser-output .hlist li li:first-child::before{content:" (";font-weight:normal}.mw-parser-output .hlist dd dd:last-child::after,.mw-parser-output .hlist dd dt:last-child::after,.mw-parser-output .hlist dd li:last-child::after,.mw-parser-output .hlist dt dd:last-child::after,.mw-parser-output .hlist dt dt:last-child::after,.mw-parser-output .hlist dt li:last-child::after,.mw-parser-output .hlist li dd:last-child::after,.mw-parser-output .hlist li dt:last-child::after,.mw-parser-output .hlist li li:last-child::after{content:")";font-weight:normal}.mw-parser-output .hlist ol{counter-reset:listitem}.mw-parser-output .hlist ol>li{counter-increment:listitem}.mw-parser-output .hlist ol>li::before{content:" "counter(listitem)"\a0 "}.mw-parser-output .hlist dd ol>li:first-child::before,.mw-parser-output .hlist dt ol>li:first-child::before,.mw-parser-output .hlist li ol>li:first-child::before{content:" ("counter(listitem)"\a0 "}</style><style data-mw-deduplicate="TemplateStyles:r1239400231">.mw-parser-output .navbar{display:inline;font-size:88%;font-weight:normal}.mw-parser-output .navbar-collapse{float:left;text-align:left}.mw-parser-output .navbar-boxtext{word-spacing:0}.mw-parser-output .navbar ul{display:inline-block;white-space:nowrap;line-height:inherit}.mw-parser-output .navbar-brackets::before{margin-right:-0.125em;content:"[ "}.mw-parser-output .navbar-brackets::after{margin-left:-0.125em;content:" ]"}.mw-parser-output .navbar li{word-spacing:-0.125em}.mw-parser-output .navbar a>span,.mw-parser-output .navbar a>abbr{text-decoration:inherit}.mw-parser-output .navbar-mini abbr{font-variant:small-caps;border-bottom:none;text-decoration:none;cursor:inherit}.mw-parser-output .navbar-ct-full{font-size:114%;margin:0 7em}.mw-parser-output .navbar-ct-mini{font-size:114%;margin:0 4em}html.skin-theme-clientpref-night .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}@media(prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}}@media print{.mw-parser-output .navbar{display:none!important}}</style><div class="navbar plainlinks hlist navbar-mini"><ul><li class="nv-view"><a href="/wiki/Template:SHA-box" title="Template:SHA-box"><abbr title="View this template">v</abbr></a></li><li class="nv-talk"><a href="/wiki/Template_talk:SHA-box" title="Template talk:SHA-box"><abbr title="Discuss this template">t</abbr></a></li><li class="nv-edit"><a href="/wiki/Special:EditPage/Template:SHA-box" title="Special:EditPage/Template:SHA-box"><abbr title="Edit this template">e</abbr></a></li></ul></div></td></tr></tbody></table> <p>A <b>cryptographic hash function</b> (<b>CHF</b>) is a <a href="/wiki/Hash_algorithm" class="mw-redirect" title="Hash algorithm">hash algorithm</a> (a <a href="/wiki/Map_(mathematics)" title="Map (mathematics)">map</a> of an arbitrary binary string to a binary string with a fixed size of <span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle n}"> <semantics> <mrow class="MJX-TeXAtom-ORD"> <mstyle displaystyle="true" scriptlevel="0"> <mi>n</mi> </mstyle> </mrow> <annotation encoding="application/x-tex">{\displaystyle n}</annotation> </semantics> </math></span><img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/a601995d55609f2d9f5e233e36fbe9ea26011b3b" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:1.395ex; height:1.676ex;" alt="{\displaystyle n}"></span> bits) that has special properties desirable for a <a href="/wiki/Cryptography" title="Cryptography">cryptographic</a> application:<sup id="cite_ref-FOOTNOTEMenezesvan_OorschotVanstone201833_1-0" class="reference"><a href="#cite_note-FOOTNOTEMenezesvan_OorschotVanstone201833-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup> </p> <ul><li>the probability of a particular <span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle n}"> <semantics> <mrow class="MJX-TeXAtom-ORD"> <mstyle displaystyle="true" scriptlevel="0"> <mi>n</mi> </mstyle> </mrow> <annotation encoding="application/x-tex">{\displaystyle n}</annotation> </semantics> </math></span><img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/a601995d55609f2d9f5e233e36fbe9ea26011b3b" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:1.395ex; height:1.676ex;" alt="{\displaystyle n}"></span>-bit output result (<a href="/wiki/Hash_value" class="mw-redirect" title="Hash value">hash value</a>) for a random input string ("message") is <span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle 2^{-n}}"> <semantics> <mrow class="MJX-TeXAtom-ORD"> <mstyle displaystyle="true" scriptlevel="0"> <msup> <mn>2</mn> <mrow class="MJX-TeXAtom-ORD"> <mo>−<!-- − --></mo> <mi>n</mi> </mrow> </msup> </mstyle> </mrow> <annotation encoding="application/x-tex">{\displaystyle 2^{-n}}</annotation> </semantics> </math></span><img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/0414b5d9e81c2eb5bd85a6ca4af24b69d5336dad" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:3.659ex; height:2.509ex;" alt="{\displaystyle 2^{-n}}"></span> (as for any good hash), so the hash value can be used as a representative of the message;</li> <li>finding an input string that matches a given hash value (a <i>pre-image</i>) is infeasible, <i>assuming all input strings are equally likely.</i> The <i>resistance</i> to such search is quantified as <a href="/wiki/Security_strength" class="mw-redirect" title="Security strength">security strength</a>: a cryptographic hash with <span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle n}"> <semantics> <mrow class="MJX-TeXAtom-ORD"> <mstyle displaystyle="true" scriptlevel="0"> <mi>n</mi> </mstyle> </mrow> <annotation encoding="application/x-tex">{\displaystyle n}</annotation> </semantics> </math></span><img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/a601995d55609f2d9f5e233e36fbe9ea26011b3b" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:1.395ex; height:1.676ex;" alt="{\displaystyle n}"></span> bits of hash value is expected to have a <i>preimage resistance</i> strength of <span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle n}"> <semantics> <mrow class="MJX-TeXAtom-ORD"> <mstyle displaystyle="true" scriptlevel="0"> <mi>n</mi> </mstyle> </mrow> <annotation encoding="application/x-tex">{\displaystyle n}</annotation> </semantics> </math></span><img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/a601995d55609f2d9f5e233e36fbe9ea26011b3b" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:1.395ex; height:1.676ex;" alt="{\displaystyle n}"></span> bits, unless the space of possible input values is significantly smaller than <span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle 2^{n}}"> <semantics> <mrow class="MJX-TeXAtom-ORD"> <mstyle displaystyle="true" scriptlevel="0"> <msup> <mn>2</mn> <mrow class="MJX-TeXAtom-ORD"> <mi>n</mi> </mrow> </msup> </mstyle> </mrow> <annotation encoding="application/x-tex">{\displaystyle 2^{n}}</annotation> </semantics> </math></span><img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/8226f30650ee4fe4e640c6d2798127e80e9c160d" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:2.381ex; height:2.343ex;" alt="{\displaystyle 2^{n}}"></span> (a practical example can be found in <a href="#Attacks_on_hashed_passwords">§ Attacks on hashed passwords</a>);</li> <li>a <i>second preimage</i> resistance strength, with the same expectations, refers to a similar problem of finding a second message that matches the given hash value when one message is already known;</li> <li>finding any pair of different messages that yield the same hash value (a <i>collision</i>) is also infeasible: a cryptographic hash is expected to have a <i>collision resistance</i> strength of <span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle n/2}"> <semantics> <mrow class="MJX-TeXAtom-ORD"> <mstyle displaystyle="true" scriptlevel="0"> <mi>n</mi> <mrow class="MJX-TeXAtom-ORD"> <mo>/</mo> </mrow> <mn>2</mn> </mstyle> </mrow> <annotation encoding="application/x-tex">{\displaystyle n/2}</annotation> </semantics> </math></span><img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/95c3931a3fa03cc98cfacd2c49a7ca35b96eaa9b" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.838ex; width:3.72ex; height:2.843ex;" alt="{\displaystyle n/2}"></span> bits (lower due to the <a href="/wiki/Birthday_paradox" class="mw-redirect" title="Birthday paradox">birthday paradox</a>).</li></ul> <p>Cryptographic hash functions have many <a href="/wiki/Information_security" title="Information security">information-security</a> applications, notably in <a href="/wiki/Digital_signature" title="Digital signature">digital signatures</a>, <a href="/wiki/Message_authentication_code" title="Message authentication code">message authentication codes</a> (MACs), and other forms of <a href="/wiki/Authentication" title="Authentication">authentication</a>. They can also be used as ordinary <a href="/wiki/Hash_function" title="Hash function">hash functions</a>, to index data in <a href="/wiki/Hash_table" title="Hash table">hash tables</a>, for <a href="/wiki/Fingerprint_(computing)" title="Fingerprint (computing)">fingerprinting</a>, to detect duplicate data or uniquely identify files, and as <a href="/wiki/Checksum" title="Checksum">checksums</a> to detect accidental data corruption. Indeed, in information-security contexts, cryptographic hash values are sometimes called (<i>digital</i>) <i>fingerprints</i>, <i>checksums</i>, or just <i>hash values</i>, even though all these terms stand for more general functions with rather different properties and purposes.<sup id="cite_ref-wjryW_2-0" class="reference"><a href="#cite_note-wjryW-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup> </p><p><a href="/wiki/Non-cryptographic_hash_function" title="Non-cryptographic hash function">Non-cryptographic hash functions</a> are used in <a href="/wiki/Hash_table" title="Hash table">hash tables</a> and to detect accidental errors; their constructions frequently provide no resistance to a deliberate attack. For example, a <a href="/wiki/Denial-of-service_attack" title="Denial-of-service attack">denial-of-service attack</a> on hash tables is possible if the collisions are easy to find, as in the case of linear <a href="/wiki/Cyclic_redundancy_check" title="Cyclic redundancy check">cyclic redundancy check</a> (CRC) functions.<sup id="cite_ref-FOOTNOTEAumasson2017106_3-0" class="reference"><a href="#cite_note-FOOTNOTEAumasson2017106-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup> </p> <meta property="mw:PageProp/toc" /> <div class="mw-heading mw-heading2"><h2 id="Properties">Properties</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Cryptographic_hash_function&action=edit&section=1" title="Edit section: Properties"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Most cryptographic hash functions are designed to take a <a href="/wiki/String_(computer_science)" title="String (computer science)">string</a> of any length as input and produce a fixed-length hash value. </p><p>A cryptographic hash function must be able to withstand all known <a href="/wiki/Cryptanalysis#Types_of_cryptanalytic_attack" title="Cryptanalysis">types of cryptanalytic attack</a>. In theoretical cryptography, the security level of a cryptographic hash function has been defined using the following properties: </p> <dl><dt>Pre-image resistance</dt> <dd>Given a hash value <span class="texhtml"><i>h</i></span>, it should be difficult to find any message <span class="texhtml"><i>m</i></span> such that <span class="texhtml"><i>h</i> = hash(<i>m</i>)</span>. This concept is related to that of a <a href="/wiki/One-way_function" title="One-way function">one-way function</a>. Functions that lack this property are vulnerable to <a href="/wiki/Preimage_attack" title="Preimage attack">preimage attacks</a>.</dd> <dt>Second pre-image resistance</dt> <dd>Given an input <span class="texhtml"><i>m</i><sub>1</sub></span>, it should be difficult to find a different input <span class="texhtml"><i>m</i><sub>2</sub></span> such that <span class="texhtml">hash(<i>m</i><sub>1</sub>) = hash(<i>m</i><sub>2</sub>)</span>. This property is sometimes referred to as <i>weak collision resistance</i>. Functions that lack this property are vulnerable to <a href="/wiki/Second-preimage_attack" class="mw-redirect" title="Second-preimage attack">second-preimage attacks</a>.</dd> <dt><a href="/wiki/Collision_resistance" title="Collision resistance">Collision resistance</a></dt> <dd>It should be difficult to find two different messages <span class="texhtml"><i>m</i><sub>1</sub></span> and <span class="texhtml"><i>m</i><sub>2</sub></span> such that <span class="texhtml">hash(<i>m</i><sub>1</sub>) = hash(<i>m</i><sub>2</sub>)</span>. Such a pair is called a cryptographic <a href="/wiki/Hash_collision" title="Hash collision">hash collision</a>. This property is sometimes referred to as <i>strong collision resistance</i>. It requires a hash value at least twice as long as that required for pre-image resistance; otherwise, collisions may be found by a <a href="/wiki/Birthday_attack" title="Birthday attack">birthday attack</a>.<sup id="cite_ref-FOOTNOTEKatzLindell2014155–157,_190,_232_4-0" class="reference"><a href="#cite_note-FOOTNOTEKatzLindell2014155–157,_190,_232-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup></dd></dl> <p>Collision resistance implies second pre-image resistance but does not imply pre-image resistance.<sup id="cite_ref-FOOTNOTERogawayShrimpton2004in_Sec._5._Implications_5-0" class="reference"><a href="#cite_note-FOOTNOTERogawayShrimpton2004in_Sec._5._Implications-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup> The weaker assumption is always preferred in theoretical cryptography, but in practice, a hash-function that is only second pre-image resistant is considered insecure and is therefore not recommended for real applications. </p><p>Informally, these properties mean that a <a href="/wiki/Adversary_(cryptography)" title="Adversary (cryptography)">malicious adversary</a> cannot replace or modify the input data without changing its digest. Thus, if two strings have the same digest, one can be very confident that they are identical. Second pre-image resistance prevents an attacker from crafting a document with the same hash as a document the attacker cannot control. Collision resistance prevents an attacker from creating two distinct documents with the same hash. </p><p>A function meeting these criteria may still have undesirable properties. Currently, popular cryptographic hash functions are vulnerable to <a href="/wiki/Length_extension_attack" title="Length extension attack"><i>length-extension</i> attacks</a>: given <span class="texhtml">hash(<i>m</i>)</span> and <span class="texhtml">len(<i>m</i>)</span> but not <span class="texhtml"><i>m</i></span>, by choosing a suitable <span class="texhtml"><i>m</i><span class="nowrap" style="padding-left:0.1em;">′</span></span> an attacker can calculate <span class="texhtml">hash(<i>m</i> ∥ <i>m</i><span class="nowrap" style="padding-left:0.1em;">′</span>)</span>, where <span class="texhtml">∥</span> denotes <a href="/wiki/Concatenation" title="Concatenation">concatenation</a>.<sup id="cite_ref-Y0rF6_6-0" class="reference"><a href="#cite_note-Y0rF6-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup> This property can be used to break naive authentication schemes based on hash functions. The <a href="/wiki/HMAC" title="HMAC">HMAC</a> construction works around these problems. </p><p>In practice, collision resistance is insufficient for many practical uses. In addition to collision resistance, it should be impossible for an adversary to find two messages with substantially similar digests; or to infer any useful information about the data, given only its digest. In particular, a hash function should behave as much as possible like a <a href="/wiki/Random_function" class="mw-redirect" title="Random function">random function</a> (often called a <a href="/wiki/Random_oracle" title="Random oracle">random oracle</a> in proofs of security) while still being deterministic and efficiently computable. This rules out functions like the <a href="/wiki/SWIFFT" title="SWIFFT">SWIFFT</a> function, which can be rigorously proven to be collision-resistant assuming that certain problems on ideal lattices are computationally difficult, but, as a linear function, does not satisfy these additional properties.<sup id="cite_ref-FOOTNOTELyubashevskyMicciancioPeikertRosen200854–72_7-0" class="reference"><a href="#cite_note-FOOTNOTELyubashevskyMicciancioPeikertRosen200854–72-7"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup> </p><p>Checksum algorithms, such as <a href="/wiki/CRC32" class="mw-redirect" title="CRC32">CRC32</a> and other <a href="/wiki/Cyclic_redundancy_check" title="Cyclic redundancy check">cyclic redundancy checks</a>, are designed to meet much weaker requirements and are generally unsuitable as cryptographic hash functions. For example, a CRC was used for message integrity in the <a href="/wiki/Wired_Equivalent_Privacy" title="Wired Equivalent Privacy">WEP</a> encryption standard, but an attack was readily discovered, which exploited the linearity of the checksum. </p> <div class="mw-heading mw-heading3"><h3 id="Degree_of_difficulty">Degree of difficulty</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Cryptographic_hash_function&action=edit&section=2" title="Edit section: Degree of difficulty"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>In cryptographic practice, "difficult" generally means "almost certainly beyond the reach of any adversary who must be prevented from breaking the system for as long as the security of the system is deemed important". The meaning of the term is therefore somewhat dependent on the application since the effort that a malicious agent may put into the task is usually proportional to their expected gain. However, since the needed effort usually multiplies with the digest length, even a thousand-fold advantage in processing power can be neutralized by adding a dozen bits to the latter. </p><p>For messages selected from a limited set of messages, for example <a href="/wiki/Password" title="Password">passwords</a> or other short messages, it can be feasible to invert a hash by trying all possible messages in the set. Because cryptographic hash functions are typically designed to be computed quickly, special <a href="/wiki/Key_derivation_function" title="Key derivation function">key derivation functions</a> that require greater computing resources have been developed that make such <a href="/wiki/Brute-force_attack" title="Brute-force attack">brute-force attacks</a> more difficult. </p><p>In some <a href="/wiki/Computational_complexity_theory" title="Computational complexity theory">theoretical analyses</a> "difficult" has a specific mathematical meaning, such as "not solvable in <a href="/wiki/Asymptotic_computational_complexity" title="Asymptotic computational complexity">asymptotic</a> <a href="/wiki/Polynomial_time" class="mw-redirect" title="Polynomial time">polynomial time</a>". Such interpretations of <i>difficulty</i> are important in the study of <a href="/wiki/Provably_secure_cryptographic_hash_function" class="mw-redirect" title="Provably secure cryptographic hash function">provably secure cryptographic hash functions</a> but do not usually have a strong connection to practical security. For example, an <a href="/wiki/Exponential_time" class="mw-redirect" title="Exponential time">exponential-time</a> algorithm can sometimes still be fast enough to make a feasible attack. Conversely, a polynomial-time algorithm (e.g., one that requires <span class="texhtml"><i>n</i><sup>20</sup></span> steps for <span class="texhtml"><i>n</i></span>-digit keys) may be too slow for any practical use. </p> <div class="mw-heading mw-heading2"><h2 id="Illustration">Illustration</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Cryptographic_hash_function&action=edit&section=3" title="Edit section: Illustration"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>An illustration of the potential use of a cryptographic hash is as follows: <a href="/wiki/Alice_and_Bob" title="Alice and Bob">Alice</a> poses a tough math problem to <a href="/wiki/Alice_and_Bob" title="Alice and Bob">Bob</a> and claims that she has solved it. Bob would like to try it himself, but would yet like to be sure that Alice is not bluffing. Therefore, Alice writes down her solution, computes its hash, and tells Bob the hash value (whilst keeping the solution secret). Then, when Bob comes up with the solution himself a few days later, Alice can prove that she had the solution earlier by revealing it and having Bob hash it and check that it matches the hash value given to him before. (This is an example of a simple <a href="/wiki/Commitment_scheme" title="Commitment scheme">commitment scheme</a>; in actual practice, Alice and Bob will often be computer programs, and the secret would be something less easily spoofed than a claimed puzzle solution.) </p> <div class="mw-heading mw-heading2"><h2 id="Applications">Applications</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Cryptographic_hash_function&action=edit&section=4" title="Edit section: Applications"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <div class="mw-heading mw-heading3"><h3 id="Verifying_the_integrity_of_messages_and_files">Verifying the integrity of messages and files</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Cryptographic_hash_function&action=edit&section=5" title="Edit section: Verifying the integrity of messages and files"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <style data-mw-deduplicate="TemplateStyles:r1236090951">.mw-parser-output .hatnote{font-style:italic}.mw-parser-output div.hatnote{padding-left:1.6em;margin-bottom:0.5em}.mw-parser-output .hatnote i{font-style:normal}.mw-parser-output .hatnote+link+.hatnote{margin-top:-0.5em}@media print{body.ns-0 .mw-parser-output .hatnote{display:none!important}}</style><div role="note" class="hatnote navigation-not-searchable">Main article: <a href="/wiki/File_verification" title="File verification">File verification</a></div> <p>An important application of secure hashes is the verification of <a href="/wiki/Message_integrity" class="mw-redirect" title="Message integrity">message integrity</a>. Comparing message digests (hash digests over the message) calculated before, and after, transmission can determine whether any changes have been made to the message or <a href="/wiki/Computer_file" title="Computer file">file</a>. </p><p><a href="/wiki/MD5" title="MD5">MD5</a>, <a href="/wiki/SHA-1" title="SHA-1">SHA-1</a>, or <a href="/wiki/SHA-2" title="SHA-2">SHA-2</a> hash digests are sometimes published on websites or forums to allow verification of integrity for downloaded files,<sup id="cite_ref-e87Bo_8-0" class="reference"><a href="#cite_note-e87Bo-8"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup> including files retrieved using <a href="/wiki/File_sharing" title="File sharing">file sharing</a> such as <a href="/wiki/Mirror_website" class="mw-redirect" title="Mirror website">mirroring</a>. This practice establishes a <a href="/wiki/Chain_of_trust" title="Chain of trust">chain of trust</a> as long as the hashes are posted on a trusted site – usually the originating site – authenticated by <a href="/wiki/HTTPS" title="HTTPS">HTTPS</a>. Using a cryptographic hash and a chain of trust detects malicious changes to the file. Non-cryptographic <a href="/wiki/Error-detecting_code" class="mw-redirect" title="Error-detecting code">error-detecting codes</a> such as <a href="/wiki/Cyclic_redundancy_check" title="Cyclic redundancy check">cyclic redundancy checks</a> only prevent against <i>non-malicious</i> alterations of the file, since an intentional <a href="/wiki/Spoofing_attack" title="Spoofing attack">spoof</a> can readily be crafted to have the <a href="/wiki/Collision_attack" title="Collision attack">colliding code</a> value. </p> <div class="mw-heading mw-heading3"><h3 id="Signature_generation_and_verification">Signature generation and verification</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Cryptographic_hash_function&action=edit&section=6" title="Edit section: Signature generation and verification"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1236090951"><div role="note" class="hatnote navigation-not-searchable">Main article: <a href="/wiki/Digital_signature" title="Digital signature">Digital signature</a></div> <p>Almost all <a href="/wiki/Digital_signature" title="Digital signature">digital signature</a> schemes require a cryptographic hash to be calculated over the message. This allows the signature calculation to be performed on the relatively small, statically sized hash digest. The message is considered authentic if the signature verification succeeds given the signature and recalculated hash digest over the message. So the message integrity property of the cryptographic hash is used to create secure and efficient digital signature schemes. </p> <div class="mw-heading mw-heading3"><h3 id="Password_verification">Password verification</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Cryptographic_hash_function&action=edit&section=7" title="Edit section: Password verification"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1236090951"><div role="note" class="hatnote navigation-not-searchable">Main article: <a href="/wiki/Password_hashing" class="mw-redirect" title="Password hashing">Password hashing</a></div> <p>Password verification commonly relies on cryptographic hashes. Storing all user passwords as <a href="/wiki/Cleartext" class="mw-redirect" title="Cleartext">cleartext</a> can result in a massive security breach if the password file is compromised. One way to reduce this danger is to only store the hash digest of each password. To authenticate a user, the password presented by the user is hashed and compared with the stored hash. A password reset method is required when password hashing is performed; original passwords cannot be recalculated from the stored hash value. </p><p>However, use of standard cryptographic hash functions, such as the SHA series, is no longer considered safe for password storage.<sup id="cite_ref-sp800-63B_9-0" class="reference"><a href="#cite_note-sp800-63B-9"><span class="cite-bracket">[</span>9<span class="cite-bracket">]</span></a></sup><sup class="reference nowrap"><span title="Page / location: 5.1.1.2">: 5.1.1.2 </span></sup> These algorithms are designed to be computed quickly, so if the hashed values are compromised, it is possible to try guessed passwords at high rates. Common <a href="/wiki/Graphics_processing_unit" title="Graphics processing unit">graphics processing units</a> can try billions of possible passwords each second. Password hash functions that perform <a href="/wiki/Key_stretching" title="Key stretching">key stretching</a> – such as <a href="/wiki/PBKDF2" title="PBKDF2">PBKDF2</a>, <a href="/wiki/Scrypt" title="Scrypt">scrypt</a> or <a href="/wiki/Argon2" title="Argon2">Argon2</a> – commonly use repeated invocations of a cryptographic hash to increase the time (and in some cases computer memory) required to perform <a href="/wiki/Brute-force_attack" title="Brute-force attack">brute-force attacks</a> on stored password hash digests. For details, see <a href="#Attacks_on_hashed_passwords">§ Attacks on hashed passwords</a>. </p><p>A password hash also requires the use of a large random, non-secret <a href="/wiki/Salt_(cryptography)" title="Salt (cryptography)">salt</a> value that can be stored with the password hash. The salt is hashed with the password, altering the password hash mapping for each password, thereby making it infeasible for an adversary to store tables of <a href="/wiki/Precomputation" title="Precomputation">precomputed</a> hash values to which the password hash digest can be compared or to test a large number of purloined hash values in parallel. </p> <div class="mw-heading mw-heading3"><h3 id="Proof-of-work">Proof-of-work</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Cryptographic_hash_function&action=edit&section=8" title="Edit section: Proof-of-work"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1236090951"><div role="note" class="hatnote navigation-not-searchable">Main article: <a href="/wiki/Proof_of_work" title="Proof of work">Proof of work</a></div> <p>A proof-of-work system (or protocol, or function) is an economic measure to deter <a href="/wiki/Denial-of-service_attack" title="Denial-of-service attack">denial-of-service attacks</a> and other service abuses such as spam on a network by requiring some work from the service requester, usually meaning processing time by a computer. A key feature of these schemes is their asymmetry: the work must be moderately hard (but feasible) on the requester side but easy to check for the service provider. One popular system – used in <a href="/wiki/Bitcoin_mining" class="mw-redirect" title="Bitcoin mining">Bitcoin mining</a> and <a href="/wiki/Hashcash" title="Hashcash">Hashcash</a> – uses partial hash inversions to prove that work was done, to unlock a mining reward in Bitcoin, and as a good-will token to send an e-mail in Hashcash. The sender is required to find a message whose hash value begins with a number of zero bits. The average work that the sender needs to perform in order to find a valid message is exponential in the number of zero bits required in the hash value, while the recipient can verify the validity of the message by executing a single hash function. For instance, in Hashcash, a sender is asked to generate a header whose 160-bit SHA-1 hash value has the first 20 bits as zeros. The sender will, on average, have to try <span class="texhtml">2<sup>19</sup></span> times to find a valid header. </p> <div class="mw-heading mw-heading3"><h3 id="File_or_data_identifier">File or data identifier</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Cryptographic_hash_function&action=edit&section=9" title="Edit section: File or data identifier"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>A message digest can also serve as a means of reliably identifying a file; several <a href="/wiki/Source_Code_Management" class="mw-redirect" title="Source Code Management">source code management</a> systems, including <a href="/wiki/Git_(software)" class="mw-redirect" title="Git (software)">Git</a>, <a href="/wiki/Mercurial_(software)" class="mw-redirect" title="Mercurial (software)">Mercurial</a> and <a href="/wiki/Monotone_(software)" title="Monotone (software)">Monotone</a>, use the <a href="/wiki/Sha1sum" title="Sha1sum">sha1sum</a> of various types of content (file content, directory trees, ancestry information, etc.) to uniquely identify them. Hashes are used to identify files on <a href="/wiki/Peer-to-peer" title="Peer-to-peer">peer-to-peer</a> <a href="/wiki/Filesharing" class="mw-redirect" title="Filesharing">filesharing</a> networks. For example, in an <a href="/wiki/Ed2k_link" class="mw-redirect" title="Ed2k link">ed2k link</a>, an <a href="/wiki/MD4" title="MD4">MD4</a>-variant hash is combined with the file size, providing sufficient information for locating file sources, downloading the file, and verifying its contents. <a href="/wiki/Magnet_URI_scheme" title="Magnet URI scheme">Magnet links</a> are another example. Such file hashes are often the top hash of a <a href="/wiki/Hash_list" title="Hash list">hash list</a> or a <a href="/wiki/Merkle_tree" title="Merkle tree">hash tree</a>, which allows for additional benefits. </p><p>One of the main applications of a <a href="/wiki/Hash_function" title="Hash function">hash function</a> is to allow the fast look-up of data in a <a href="/wiki/Hash_table" title="Hash table">hash table</a>. Being hash functions of a particular kind, cryptographic hash functions lend themselves well to this application too. </p><p>However, compared with standard hash functions, cryptographic hash functions tend to be much more expensive computationally. For this reason, they tend to be used in contexts where it is necessary for users to protect themselves against the possibility of forgery (the creation of data with the same digest as the expected data) by potentially malicious participants.<sup class="noprint Inline-Template Template-Fact" style="white-space:nowrap;">[<i><a href="/wiki/Wikipedia:Citation_needed" title="Wikipedia:Citation needed"><span title="This claim needs references to reliable sources. (May 2023)">citation needed</span></a></i>]</sup> </p> <div class="mw-heading mw-heading4"><h4 id="Content-addressable_storage">Content-addressable storage</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Cryptographic_hash_function&action=edit&section=10" title="Edit section: Content-addressable storage"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <div class="excerpt-block"><style data-mw-deduplicate="TemplateStyles:r1066933788">.mw-parser-output .excerpt-hat .mw-editsection-like{font-style:normal}</style><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1236090951"><div role="note" class="hatnote navigation-not-searchable dablink excerpt-hat selfref">This section is an excerpt from <a href="/wiki/Content-addressable_storage" title="Content-addressable storage">Content-addressable storage</a>.<span class="mw-editsection-like plainlinks"><span class="mw-editsection-bracket">[</span><a class="external text" href="https://en.wikipedia.org/w/index.php?title=Content-addressable_storage&action=edit">edit</a><span class="mw-editsection-bracket">]</span></span></div><div class="excerpt"> <p><a href="/wiki/Content-addressable_storage" title="Content-addressable storage">Content-addressable storage</a> (CAS), also referred to as content-addressed storage or fixed-content storage, is a way to store information so it can be retrieved based on its content, not its name or location. It has been used for high-speed storage and <a href="/wiki/Information_retrieval" title="Information retrieval">retrieval</a> of fixed content, such as documents stored for compliance with government regulations<sup class="noprint Inline-Template Template-Fact" style="white-space:nowrap;">[<i><a href="/wiki/Wikipedia:Citation_needed" title="Wikipedia:Citation needed"><span title="This claim needs references to reliable sources. (July 2023)">citation needed</span></a></i>]</sup>. Content-addressable storage is similar to <a href="/wiki/Content-addressable_memory" title="Content-addressable memory">content-addressable memory</a>. </p><p>CAS systems work by passing the content of the file through a cryptographic hash function to generate a unique key, the "content address". The <a href="/wiki/File_system" title="File system">file system</a>'s <a href="/wiki/Directory_(computing)" title="Directory (computing)">directory</a> stores these addresses and a pointer to the physical storage of the content. Because an attempt to store the same file will generate the same key, CAS systems ensure that the files within them are unique, and because changing the file will result in a new key, CAS systems provide assurance that the file is unchanged. </p> CAS became a significant market during the 2000s, especially after the introduction of the 2002 <a href="/wiki/Sarbanes%E2%80%93Oxley_Act" title="Sarbanes–Oxley Act">Sarbanes–Oxley Act</a> in the United States which required the storage of enormous numbers of documents for long periods and retrieved only rarely. Ever-increasing performance of traditional file systems and new software systems have eroded the value of legacy CAS systems, which have become increasingly rare after roughly 2018<sup class="noprint Inline-Template Template-Fact" style="white-space:nowrap;">[<i><a href="/wiki/Wikipedia:Citation_needed" title="Wikipedia:Citation needed"><span title="This claim needs references to reliable sources. (December 2023)">citation needed</span></a></i>]</sup>. However, the principles of content addressability continue to be of great interest to computer scientists, and form the core of numerous emerging technologies, such as <a href="/wiki/Peer-to-peer_file_sharing" title="Peer-to-peer file sharing">peer-to-peer file sharing</a>, <a href="/wiki/Cryptocurrency" title="Cryptocurrency">cryptocurrencies</a>, and <a href="/wiki/Distributed_computing" title="Distributed computing">distributed computing</a>.</div></div> <div class="mw-heading mw-heading2"><h2 id="Hash_functions_based_on_block_ciphers">Hash functions based on block ciphers</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Cryptographic_hash_function&action=edit&section=11" title="Edit section: Hash functions based on block ciphers"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>There are several methods to use a <a href="/wiki/Block_cipher" title="Block cipher">block cipher</a> to build a cryptographic hash function, specifically a <a href="/wiki/One-way_compression_function" title="One-way compression function">one-way compression function</a>. </p><p>The methods resemble the <a href="/wiki/Block_cipher_modes_of_operation" class="mw-redirect" title="Block cipher modes of operation">block cipher modes of operation</a> usually used for encryption. Many well-known hash functions, including <a href="/wiki/MD4" title="MD4">MD4</a>, <a href="/wiki/MD5" title="MD5">MD5</a>, <a href="/wiki/SHA-1" title="SHA-1">SHA-1</a> and <a href="/wiki/SHA-2" title="SHA-2">SHA-2</a>, are built from block-cipher-like components designed for the purpose, with feedback to ensure that the resulting function is not invertible. <a href="/wiki/NIST_hash_function_competition" title="NIST hash function competition">SHA-3</a> finalists included functions with block-cipher-like components (e.g., <a href="/wiki/Skein_hash_function" class="mw-redirect" title="Skein hash function">Skein</a>, <a href="/wiki/BLAKE_(hash_function)" title="BLAKE (hash function)">BLAKE</a>) though the function finally selected, <a href="/wiki/Keccak" class="mw-redirect" title="Keccak">Keccak</a>, was built on a <a href="/wiki/Sponge_function" title="Sponge function">cryptographic sponge</a> instead. </p><p>A standard block cipher such as <a href="/wiki/Advanced_Encryption_Standard" title="Advanced Encryption Standard">AES</a> can be used in place of these custom block ciphers; that might be useful when an <a href="/wiki/Embedded_system" title="Embedded system">embedded system</a> needs to implement both encryption and hashing with minimal code size or hardware area. However, that approach can have costs in efficiency and security. The ciphers in hash functions are built for hashing: they use large keys and blocks, can efficiently change keys every block, and have been designed and vetted for resistance to <a href="/wiki/Related-key_attack" title="Related-key attack">related-key attacks</a>. General-purpose ciphers tend to have different design goals. In particular, AES has key and block sizes that make it nontrivial to use to generate long hash values; AES encryption becomes less efficient when the key changes each block; and related-key attacks make it potentially less secure for use in a hash function than for encryption. </p> <div class="mw-heading mw-heading2"><h2 id="Hash_function_design">Hash function design</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Cryptographic_hash_function&action=edit&section=12" title="Edit section: Hash function design"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <div class="mw-heading mw-heading3"><h3 id="Merkle–Damgård_construction"><span id="Merkle.E2.80.93Damg.C3.A5rd_construction"></span>Merkle–Damgård construction</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Cryptographic_hash_function&action=edit&section=13" title="Edit section: Merkle–Damgård construction"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1236090951"><div role="note" class="hatnote navigation-not-searchable">Main article: <a href="/wiki/Merkle%E2%80%93Damg%C3%A5rd_construction" title="Merkle–Damgård construction">Merkle–Damgård construction</a></div> <figure class="mw-halign-right" typeof="mw:File/Thumb"><a href="/wiki/File:Merkle-Damgard_hash_big.svg" class="mw-file-description"><img src="//upload.wikimedia.org/wikipedia/commons/thumb/e/ed/Merkle-Damgard_hash_big.svg/450px-Merkle-Damgard_hash_big.svg.png" decoding="async" width="450" height="210" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/e/ed/Merkle-Damgard_hash_big.svg/675px-Merkle-Damgard_hash_big.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/e/ed/Merkle-Damgard_hash_big.svg/900px-Merkle-Damgard_hash_big.svg.png 2x" data-file-width="600" data-file-height="280" /></a><figcaption>The Merkle–Damgård hash construction</figcaption></figure> <p>A hash function must be able to process an arbitrary-length message into a fixed-length output. This can be achieved by breaking the input up into a series of equally sized blocks, and operating on them in sequence using a <a href="/wiki/One-way_compression_function" title="One-way compression function">one-way compression function</a>. The compression function can either be specially designed for hashing or be built from a block cipher. A hash function built with the Merkle–Damgård construction is as resistant to collisions as is its compression function; any collision for the full hash function can be traced back to a collision in the compression function. </p><p>The last block processed should also be unambiguously <a href="/wiki/Padding_(cryptography)" title="Padding (cryptography)">length padded</a>; this is crucial to the security of this construction. This construction is called the <a href="/wiki/Merkle%E2%80%93Damg%C3%A5rd_construction" title="Merkle–Damgård construction">Merkle–Damgård construction</a>. Most common classical hash functions, including <a href="/wiki/SHA-1" title="SHA-1">SHA-1</a> and <a href="/wiki/MD5" title="MD5">MD5</a>, take this form. </p> <div class="mw-heading mw-heading3"><h3 id="Wide_pipe_versus_narrow_pipe">Wide pipe versus narrow pipe <span class="anchor" id="wide_pipe"></span><span class="anchor" id="narrow_pipe"></span></h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Cryptographic_hash_function&action=edit&section=14" title="Edit section: Wide pipe versus narrow pipe"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>A straightforward application of the Merkle–Damgård construction, where the size of hash output is equal to the internal state size (between each compression step), results in a <b>narrow-pipe</b> hash design. This design causes many inherent flaws, including <a href="/wiki/Length_extension_attack" title="Length extension attack">length-extension</a>, multicollisions,<sup id="cite_ref-LkIref_10-0" class="reference"><a href="#cite_note-LkIref-10"><span class="cite-bracket">[</span>10<span class="cite-bracket">]</span></a></sup> long message attacks,<sup id="cite_ref-FOOTNOTEKelseySchneier2005474–490_11-0" class="reference"><a href="#cite_note-FOOTNOTEKelseySchneier2005474–490-11"><span class="cite-bracket">[</span>11<span class="cite-bracket">]</span></a></sup> generate-and-paste attacks,<sup class="noprint Inline-Template Template-Fact" style="white-space:nowrap;">[<i><a href="/wiki/Wikipedia:Citation_needed" title="Wikipedia:Citation needed"><span title="This claim needs references to reliable sources. (July 2017)">citation needed</span></a></i>]</sup> and also cannot be parallelized. As a result, modern hash functions are built on <b>wide-pipe</b> constructions that have a larger internal state size – which range from tweaks of the Merkle–Damgård construction<sup id="cite_ref-LkIref_10-1" class="reference"><a href="#cite_note-LkIref-10"><span class="cite-bracket">[</span>10<span class="cite-bracket">]</span></a></sup> to new constructions such as the <a href="/wiki/Sponge_construction" class="mw-redirect" title="Sponge construction">sponge construction</a> and <a href="/wiki/HAIFA_construction" title="HAIFA construction">HAIFA construction</a>.<sup id="cite_ref-EjaBK_12-0" class="reference"><a href="#cite_note-EjaBK-12"><span class="cite-bracket">[</span>12<span class="cite-bracket">]</span></a></sup> None of the entrants in the <a href="/wiki/NIST_hash_function_competition" title="NIST hash function competition">NIST hash function competition</a> use a classical Merkle–Damgård construction.<sup id="cite_ref-FOOTNOTENandiPaul2010_13-0" class="reference"><a href="#cite_note-FOOTNOTENandiPaul2010-13"><span class="cite-bracket">[</span>13<span class="cite-bracket">]</span></a></sup> </p><p>Meanwhile, truncating the output of a longer hash, such as used in SHA-512/256, also defeats many of these attacks.<sup id="cite_ref-ZY8I9_14-0" class="reference"><a href="#cite_note-ZY8I9-14"><span class="cite-bracket">[</span>14<span class="cite-bracket">]</span></a></sup> </p> <div class="mw-heading mw-heading2"><h2 id="Use_in_building_other_cryptographic_primitives">Use in building other cryptographic primitives</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Cryptographic_hash_function&action=edit&section=15" title="Edit section: Use in building other cryptographic primitives"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Hash functions can be used to build other <a href="/wiki/Cryptographic_primitive" title="Cryptographic primitive">cryptographic primitives</a>. For these other primitives to be cryptographically secure, care must be taken to build them correctly. </p><p><a href="/wiki/Message_authentication_code" title="Message authentication code">Message authentication codes</a> (MACs) (also called keyed hash functions) are often built from hash functions. <a href="/wiki/HMAC" title="HMAC">HMAC</a> is such a MAC. </p><p>Just as <a href="/wiki/Block_cipher" title="Block cipher">block ciphers</a> can be used to build hash functions, hash functions can be used to build block ciphers. <a href="/wiki/Luby-Rackoff" class="mw-redirect" title="Luby-Rackoff">Luby-Rackoff</a> constructions using hash functions can be provably secure if the underlying hash function is secure. Also, many hash functions (including <a href="/wiki/SHA-1" title="SHA-1">SHA-1</a> and <a href="/wiki/SHA-2" title="SHA-2">SHA-2</a>) are built by using a special-purpose block cipher in a <a href="/wiki/One-way_compression_function#Davies–Meyer" title="One-way compression function">Davies–Meyer</a> or other construction. That cipher can also be used in a conventional mode of operation, without the same security guarantees; for example, <a href="/wiki/SHACAL" title="SHACAL">SHACAL</a>, <a href="/wiki/BEAR_(cipher)" class="mw-redirect" title="BEAR (cipher)">BEAR</a> and <a href="/wiki/LION_(cipher)" class="mw-redirect" title="LION (cipher)">LION</a>. </p><p><a href="/wiki/Pseudorandom_number_generator" title="Pseudorandom number generator">Pseudorandom number generators</a> (PRNGs) can be built using hash functions. This is done by combining a (secret) random seed with a counter and hashing it. </p><p>Some hash functions, such as <a href="/wiki/Skein_(hash_function)" title="Skein (hash function)">Skein</a>, <a href="/wiki/Keccak" class="mw-redirect" title="Keccak">Keccak</a>, and <a href="/wiki/RadioGat%C3%BAn" title="RadioGatún">RadioGatún</a>, output an arbitrarily long stream and can be used as a <a href="/wiki/Stream_cipher" title="Stream cipher">stream cipher</a>, and stream ciphers can also be built from fixed-length digest hash functions. Often this is done by first building a <a href="/wiki/Cryptographically_secure_pseudorandom_number_generator" title="Cryptographically secure pseudorandom number generator">cryptographically secure pseudorandom number generator</a> and then using its stream of random bytes as <a href="/wiki/Keystream" title="Keystream">keystream</a>. <a href="/wiki/SEAL_(cipher)" title="SEAL (cipher)">SEAL</a> is a stream cipher that uses <a href="/wiki/SHA-1" title="SHA-1">SHA-1</a> to generate internal tables, which are then used in a keystream generator more or less unrelated to the hash algorithm. SEAL is not guaranteed to be as strong (or weak) as SHA-1. Similarly, the key expansion of the <a href="/wiki/HC-256" title="HC-256">HC-128 and HC-256</a> stream ciphers makes heavy use of the <a href="/wiki/SHA-256" class="mw-redirect" title="SHA-256">SHA-256</a> hash function. </p> <div class="mw-heading mw-heading2"><h2 id="Concatenation">Concatenation</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Cryptographic_hash_function&action=edit&section=16" title="Edit section: Concatenation"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p><a href="/wiki/Concatenation" title="Concatenation">Concatenating</a> outputs from multiple hash functions provide collision resistance as good as the strongest of the algorithms included in the concatenated result.<sup class="noprint Inline-Template Template-Fact" style="white-space:nowrap;">[<i><a href="/wiki/Wikipedia:Citation_needed" title="Wikipedia:Citation needed"><span title="This claim needs references to reliable sources. (May 2016)">citation needed</span></a></i>]</sup> For example, older versions of <a href="/wiki/Transport_Layer_Security" title="Transport Layer Security">Transport Layer Security (TLS) and Secure Sockets Layer (SSL)</a> used concatenated <a href="/wiki/MD5" title="MD5">MD5</a> and <a href="/wiki/SHA-1" title="SHA-1">SHA-1</a> sums.<sup id="cite_ref-FOOTNOTEMendelRechbergerSchläffer2009145_15-0" class="reference"><a href="#cite_note-FOOTNOTEMendelRechbergerSchläffer2009145-15"><span class="cite-bracket">[</span>15<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-FOOTNOTEHarnikKilianNaorReingold200599_16-0" class="reference"><a href="#cite_note-FOOTNOTEHarnikKilianNaorReingold200599-16"><span class="cite-bracket">[</span>16<span class="cite-bracket">]</span></a></sup> This ensures that a method to find collisions in one of the hash functions does not defeat data protected by both hash functions.<sup class="noprint Inline-Template Template-Fact" style="white-space:nowrap;">[<i><a href="/wiki/Wikipedia:Citation_needed" title="Wikipedia:Citation needed"><span title="This claim needs references to reliable sources. (May 2016)">citation needed</span></a></i>]</sup> </p><p>For <a href="/wiki/Merkle%E2%80%93Damg%C3%A5rd_construction" title="Merkle–Damgård construction">Merkle–Damgård construction</a> hash functions, the concatenated function is as collision-resistant as its strongest component, but not more collision-resistant.<sup class="noprint Inline-Template Template-Fact" style="white-space:nowrap;">[<i><a href="/wiki/Wikipedia:Citation_needed" title="Wikipedia:Citation needed"><span title="This claim needs references to reliable sources. (May 2016)">citation needed</span></a></i>]</sup> <a href="/wiki/Antoine_Joux" title="Antoine Joux">Antoine Joux</a> observed that 2-collisions lead to <span class="texhtml"><i>n</i></span>-collisions: if it is feasible for an attacker to find two messages with the same MD5 hash, then they can find as many additional messages with that same MD5 hash as they desire, with no greater difficulty.<sup id="cite_ref-FOOTNOTEJoux2004_17-0" class="reference"><a href="#cite_note-FOOTNOTEJoux2004-17"><span class="cite-bracket">[</span>17<span class="cite-bracket">]</span></a></sup> Among those <span class="texhtml"><i>n</i></span> messages with the same MD5 hash, there is likely to be a collision in SHA-1. The additional work needed to find the SHA-1 collision (beyond the exponential birthday search) requires only <a href="/wiki/Polynomial_time" class="mw-redirect" title="Polynomial time">polynomial time</a>.<sup id="cite_ref-urlGmane_18-0" class="reference"><a href="#cite_note-urlGmane-18"><span class="cite-bracket">[</span>18<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-FOOTNOTEHochShamir2008616–630_19-0" class="reference"><a href="#cite_note-FOOTNOTEHochShamir2008616–630-19"><span class="cite-bracket">[</span>19<span class="cite-bracket">]</span></a></sup> </p> <div class="mw-heading mw-heading2"><h2 id="Cryptographic_hash_algorithms">Cryptographic hash algorithms</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Cryptographic_hash_function&action=edit&section=17" title="Edit section: Cryptographic hash algorithms"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>There are many cryptographic hash algorithms; this section lists a few algorithms that are referenced relatively often. A more extensive list can be found on the page containing a <a href="/wiki/Comparison_of_cryptographic_hash_functions" title="Comparison of cryptographic hash functions">comparison of cryptographic hash functions</a>. </p> <div class="mw-heading mw-heading3"><h3 id="MD5">MD5</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Cryptographic_hash_function&action=edit&section=18" title="Edit section: MD5"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1236090951"><div role="note" class="hatnote navigation-not-searchable">Main article: <a href="/wiki/MD5" title="MD5">MD5</a></div> <p>MD5 was designed by <a href="/wiki/Ronald_Rivest" class="mw-redirect" title="Ronald Rivest">Ronald Rivest</a> in 1991 to replace an earlier hash function, MD4, and was specified in 1992 as RFC 1321. Collisions against MD5 can be calculated within seconds, which makes the algorithm unsuitable for most use cases where a cryptographic hash is required. MD5 produces a digest of 128 bits (16 bytes). </p> <div class="mw-heading mw-heading3"><h3 id="SHA-1">SHA-1</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Cryptographic_hash_function&action=edit&section=19" title="Edit section: SHA-1"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1236090951"><div role="note" class="hatnote navigation-not-searchable">Main article: <a href="/wiki/SHA-1" title="SHA-1">SHA-1</a></div> <p>SHA-1 was developed as part of the U.S. Government's <a href="/wiki/Capstone_(cryptography)" title="Capstone (cryptography)">Capstone</a> project. The original specification – now commonly called SHA-0 – of the algorithm was published in 1993 under the title Secure Hash Standard, FIPS PUB 180, by U.S. government standards agency NIST (National Institute of Standards and Technology). It was withdrawn by the NSA shortly after publication and was superseded by the revised version, published in 1995 in FIPS  PUB 180-1 and commonly designated SHA-1. Collisions against the full SHA-1 algorithm can be produced using the <a href="/wiki/SHA-1#SHAttered_–_first_public_collision" title="SHA-1">shattered attack</a> and the hash function should be considered broken. SHA-1 produces a hash digest of 160 bits (20 bytes). </p><p>Documents may refer to SHA-1 as just "SHA", even though this may conflict with the other Secure Hash Algorithms such as SHA-0, SHA-2, and SHA-3. </p> <div class="mw-heading mw-heading3"><h3 id="RIPEMD-160">RIPEMD-160</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Cryptographic_hash_function&action=edit&section=20" title="Edit section: RIPEMD-160"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1236090951"><div role="note" class="hatnote navigation-not-searchable">Main article: <a href="/wiki/RIPEMD-160" class="mw-redirect" title="RIPEMD-160">RIPEMD-160</a></div> <p>RIPEMD (RACE Integrity Primitives Evaluation Message Digest) is a family of cryptographic hash functions developed in Leuven, Belgium, by Hans Dobbertin, Antoon Bosselaers, and Bart Preneel at the COSIC research group at the Katholieke Universiteit Leuven, and first published in 1996. RIPEMD was based upon the design principles used in MD4 and is similar in performance to the more popular SHA-1. RIPEMD-160 has, however, not been broken. As the name implies, RIPEMD-160 produces a hash digest of 160 bits (20 bytes). </p> <div class="mw-heading mw-heading3"><h3 id="Whirlpool">Whirlpool</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Cryptographic_hash_function&action=edit&section=21" title="Edit section: Whirlpool"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1236090951"><div role="note" class="hatnote navigation-not-searchable">Main article: <a href="/wiki/Whirlpool_(hash_function)" title="Whirlpool (hash function)">Whirlpool (hash function)</a></div> <p>Whirlpool is a cryptographic hash function designed by Vincent Rijmen and Paulo S. L. M. Barreto, who first described it in 2000. Whirlpool is based on a substantially modified version of the Advanced Encryption Standard (AES). Whirlpool produces a hash digest of 512 bits (64 bytes). </p> <div class="mw-heading mw-heading3"><h3 id="SHA-2">SHA-2</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Cryptographic_hash_function&action=edit&section=22" title="Edit section: SHA-2"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1236090951"><div role="note" class="hatnote navigation-not-searchable">Main article: <a href="/wiki/SHA-2" title="SHA-2">SHA-2</a></div> <p>SHA-2 (Secure Hash Algorithm 2) is a set of cryptographic hash functions designed by the United States National Security Agency (NSA), first published in 2001. They are built using the Merkle–Damgård structure, from a one-way compression function itself built using the Davies–Meyer structure from a (classified) specialized block cipher. </p><p>SHA-2 basically consists of two hash algorithms: SHA-256 and SHA-512. SHA-224 is a variant of SHA-256 with different starting values and truncated output. SHA-384 and the lesser-known SHA-512/224 and SHA-512/256 are all variants of SHA-512. SHA-512 is more secure than SHA-256 and is commonly faster than SHA-256 on 64-bit machines such as <a href="/wiki/X86-64" title="X86-64">AMD64</a>. </p><p>The output size in bits is given by the extension to the "SHA" name, so SHA-224 has an output size of 224 bits (28 bytes); SHA-256, 32 bytes; SHA-384, 48 bytes; and SHA-512, 64 bytes. </p> <div class="mw-heading mw-heading3"><h3 id="SHA-3">SHA-3</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Cryptographic_hash_function&action=edit&section=23" title="Edit section: SHA-3"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1236090951"><div role="note" class="hatnote navigation-not-searchable">Main article: <a href="/wiki/SHA-3" title="SHA-3">SHA-3</a></div> <p>SHA-3 (Secure Hash Algorithm 3) was released by NIST on August 5, 2015. SHA-3 is a subset of the broader cryptographic primitive family Keccak. The Keccak algorithm is the work of Guido Bertoni, Joan Daemen, Michael Peeters, and Gilles Van Assche. Keccak is based on a sponge construction, which can also be used to build other cryptographic primitives such as a stream cipher. SHA-3 provides the same output sizes as SHA-2: 224, 256, 384, and 512 bits. </p><p>Configurable output sizes can also be obtained using the SHAKE-128 and SHAKE-256 functions. Here the -128 and -256 extensions to the name imply the <a href="/wiki/Security_strength" class="mw-redirect" title="Security strength">security strength</a> of the function rather than the output size in bits. </p> <div class="mw-heading mw-heading3"><h3 id="BLAKE2">BLAKE2</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Cryptographic_hash_function&action=edit&section=24" title="Edit section: BLAKE2"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1236090951"><div role="note" class="hatnote navigation-not-searchable">Main article: <a href="/wiki/BLAKE2" class="mw-redirect" title="BLAKE2">BLAKE2</a></div> <p>BLAKE2, an improved version of BLAKE, was announced on December 21, 2012. It was created by Jean-Philippe Aumasson, Samuel Neves, <a href="/wiki/Zooko_Wilcox-O%27Hearn" title="Zooko Wilcox-O'Hearn">Zooko Wilcox-O'Hearn</a>, and Christian Winnerlein with the goal of replacing the widely used but broken MD5 and SHA-1 algorithms. When run on 64-bit x64 and ARM architectures, BLAKE2b is faster than SHA-3, SHA-2, SHA-1, and MD5. Although BLAKE and BLAKE2 have not been standardized as SHA-3 has, BLAKE2 has been used in many protocols including the <a href="/wiki/Argon2" title="Argon2">Argon2</a> password hash, for the high efficiency that it offers on modern CPUs. As BLAKE was a candidate for SHA-3, BLAKE and BLAKE2 both offer the same output sizes as SHA-3 – including a configurable output size. </p> <div class="mw-heading mw-heading3"><h3 id="BLAKE3">BLAKE3</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Cryptographic_hash_function&action=edit&section=25" title="Edit section: BLAKE3"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1236090951"><div role="note" class="hatnote navigation-not-searchable">Main article: <a href="/wiki/BLAKE3" class="mw-redirect" title="BLAKE3">BLAKE3</a></div> <p>BLAKE3, an improved version of BLAKE2, was announced on January 9, 2020. It was created by Jack O'Connor, Jean-Philippe Aumasson, Samuel Neves, and Zooko Wilcox-O'Hearn. BLAKE3 is a single algorithm, in contrast to BLAKE and BLAKE2, which are algorithm families with multiple variants. The BLAKE3 compression function is closely based on that of BLAKE2s, with the biggest difference being that the number of rounds is reduced from 10 to 7. Internally, BLAKE3 is a <a href="/wiki/Merkle_tree" title="Merkle tree">Merkle tree</a>, and it supports higher degrees of parallelism than BLAKE2. </p> <div class="mw-heading mw-heading2"><h2 id="Attacks_on_cryptographic_hash_algorithms">Attacks on cryptographic hash algorithms</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Cryptographic_hash_function&action=edit&section=26" title="Edit section: Attacks on cryptographic hash algorithms"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>There is a long list of cryptographic hash functions but many have been found to be vulnerable and should not be used. For instance, NIST selected 51 hash functions<sup id="cite_ref-UNudB_20-0" class="reference"><a href="#cite_note-UNudB-20"><span class="cite-bracket">[</span>20<span class="cite-bracket">]</span></a></sup> as candidates for round 1 of the SHA-3 hash competition, of which 10 were considered broken and 16 showed significant weaknesses and therefore did not make it to the next round; more information can be found on the main article about the <a href="/wiki/NIST_hash_function_competition" title="NIST hash function competition">NIST hash function competitions</a>. </p><p>Even if a hash function has never been broken, a <a href="/wiki/Cryptographic_attack#Amount_of_information_available_to_the_attacker" class="mw-redirect" title="Cryptographic attack">successful attack</a> against a weakened variant may undermine the experts' confidence. For instance, in August 2004 collisions were found in several then-popular hash functions, including MD5.<sup id="cite_ref-Mpt5q_21-0" class="reference"><a href="#cite_note-Mpt5q-21"><span class="cite-bracket">[</span>21<span class="cite-bracket">]</span></a></sup> These weaknesses called into question the security of stronger algorithms derived from the weak hash functions – in particular, SHA-1 (a strengthened version of SHA-0), RIPEMD-128, and RIPEMD-160 (both strengthened versions of RIPEMD).<sup id="cite_ref-R7ASX_22-0" class="reference"><a href="#cite_note-R7ASX-22"><span class="cite-bracket">[</span>22<span class="cite-bracket">]</span></a></sup> </p><p>On August 12, 2004, Joux, Carribault, Lemuel, and Jalby announced a collision for the full SHA-0 algorithm.<sup id="cite_ref-FOOTNOTEJoux2004_17-1" class="reference"><a href="#cite_note-FOOTNOTEJoux2004-17"><span class="cite-bracket">[</span>17<span class="cite-bracket">]</span></a></sup> Joux et al. accomplished this using a generalization of the Chabaud and Joux attack. They found that the collision had complexity 2<sup>51</sup> and took about 80,000 CPU hours on a <a href="/wiki/Supercomputer" title="Supercomputer">supercomputer</a> with 256 <a href="/wiki/Itanium_2" class="mw-redirect" title="Itanium 2">Itanium 2</a> processors – equivalent to 13 days of full-time use of the supercomputer.<sup class="noprint Inline-Template Template-Fact" style="white-space:nowrap;">[<i><a href="/wiki/Wikipedia:Citation_needed" title="Wikipedia:Citation needed"><span title="This claim needs references to reliable sources. (May 2016)">citation needed</span></a></i>]</sup> </p><p>In February 2005, an attack on SHA-1 was reported that would find collision in about 2<sup>69</sup> hashing operations, rather than the 2<sup>80</sup> expected for a 160-bit hash function. In August 2005, another attack on SHA-1 was reported that would find collisions in 2<sup>63</sup> operations. Other theoretical weaknesses of SHA-1 have been known,<sup id="cite_ref-NhaRr_23-0" class="reference"><a href="#cite_note-NhaRr-23"><span class="cite-bracket">[</span>23<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-CmkOx_24-0" class="reference"><a href="#cite_note-CmkOx-24"><span class="cite-bracket">[</span>24<span class="cite-bracket">]</span></a></sup> and in February 2017 Google announced a collision in SHA-1.<sup id="cite_ref-xW1m9_25-0" class="reference"><a href="#cite_note-xW1m9-25"><span class="cite-bracket">[</span>25<span class="cite-bracket">]</span></a></sup> Security researchers recommend that new applications can avoid these problems by using later members of the SHA family, such as <a href="/wiki/SHA-2" title="SHA-2">SHA-2</a>, or using techniques such as <a href="/wiki/Universal_hashing" title="Universal hashing">randomized hashing</a><sup id="cite_ref-MrThfd_26-0" class="reference"><a href="#cite_note-MrThfd-26"><span class="cite-bracket">[</span>26<span class="cite-bracket">]</span></a></sup> that do not require collision resistance. </p><p>A successful, practical attack broke MD5 (used within certificates for <a href="/wiki/Transport_Layer_Security" title="Transport Layer Security">Transport Layer Security</a>) in 2008.<sup id="cite_ref-bVltK_27-0" class="reference"><a href="#cite_note-bVltK-27"><span class="cite-bracket">[</span>27<span class="cite-bracket">]</span></a></sup> </p><p>Many cryptographic hashes are based on the <a href="/wiki/Merkle%E2%80%93Damg%C3%A5rd_construction" title="Merkle–Damgård construction">Merkle–Damgård construction</a>. All cryptographic hashes that directly use the full output of a Merkle–Damgård construction are vulnerable to <a href="/wiki/Length_extension_attack" title="Length extension attack">length extension attacks</a>. This makes the MD5, SHA-1, RIPEMD-160, Whirlpool, and the SHA-256 / SHA-512 hash algorithms all vulnerable to this specific attack. SHA-3, BLAKE2, BLAKE3, and the truncated SHA-2 variants are not vulnerable to this type of attack.<sup class="noprint Inline-Template Template-Fact" style="white-space:nowrap;">[<i><a href="/wiki/Wikipedia:Citation_needed" title="Wikipedia:Citation needed"><span title="This claim needs references to reliable sources. (April 2020)">citation needed</span></a></i>]</sup> </p> <div class="mw-heading mw-heading2"><h2 id="Attacks_on_hashed_passwords">Attacks on hashed passwords</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Cryptographic_hash_function&action=edit&section=27" title="Edit section: Attacks on hashed passwords"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1236090951"><div role="note" class="hatnote navigation-not-searchable">Main article: <a href="/wiki/Password_cracking" title="Password cracking">Password cracking</a></div> <p>Rather than store plain user passwords, controlled-access systems frequently store the hash of each user's password in a file or database. When someone requests access, the password they submit is hashed and compared with the stored value. If the database is stolen (an all-too-frequent occurrence<sup id="cite_ref-jjUS1_28-0" class="reference"><a href="#cite_note-jjUS1-28"><span class="cite-bracket">[</span>28<span class="cite-bracket">]</span></a></sup>), the thief will only have the hash values, not the passwords. </p><p>Passwords may still be retrieved by an attacker from the hashes, because most people choose passwords in predictable ways. Lists of common passwords are widely circulated and many passwords are short enough that even all possible combinations may be tested if calculation of the hash does not take too much time.<sup id="cite_ref-2tECU_29-0" class="reference"><a href="#cite_note-2tECU-29"><span class="cite-bracket">[</span>29<span class="cite-bracket">]</span></a></sup> </p><p>The use of <a href="/wiki/Salt_(cryptography)" title="Salt (cryptography)">cryptographic salt</a> prevents some attacks, such as building files of precomputing hash values, e.g. <a href="/wiki/Rainbow_table" title="Rainbow table">rainbow tables</a>. But searches on the order of 100 billion tests per second are possible with high-end <a href="/wiki/Graphics_processor" class="mw-redirect" title="Graphics processor">graphics processors</a>, making direct attacks possible even with salt.<sup id="cite_ref-28vy8_30-0" class="reference"><a href="#cite_note-28vy8-30"><span class="cite-bracket">[</span>30<span class="cite-bracket">]</span></a></sup> <sup id="cite_ref-TbJcd_31-0" class="reference"><a href="#cite_note-TbJcd-31"><span class="cite-bracket">[</span>31<span class="cite-bracket">]</span></a></sup> The United States <a href="/wiki/National_Institute_of_Standards_and_Technology" title="National Institute of Standards and Technology">National Institute of Standards and Technology</a> recommends storing passwords using special hashes called <a href="/wiki/Key_derivation_function" title="Key derivation function">key derivation functions</a> (KDFs) that have been created to slow brute force searches.<sup id="cite_ref-sp800-63B_9-1" class="reference"><a href="#cite_note-sp800-63B-9"><span class="cite-bracket">[</span>9<span class="cite-bracket">]</span></a></sup><sup class="reference nowrap"><span title="Page / location: 5.1.1.2">: 5.1.1.2 </span></sup> Slow hashes include <a href="/wiki/Pbkdf2" class="mw-redirect" title="Pbkdf2">pbkdf2</a>, <a href="/wiki/Bcrypt" title="Bcrypt">bcrypt</a>, <a href="/wiki/Scrypt" title="Scrypt">scrypt</a>, <a href="/wiki/Argon2" title="Argon2">argon2</a>, <a href="/wiki/Balloon_hashing" title="Balloon hashing">Balloon</a> and some recent modes of <a href="/wiki/Crypt_(C)" title="Crypt (C)">Unix crypt</a>. For KDFs that perform multiple hashes to slow execution, NIST recommends an iteration count of 10,000 or more.<sup id="cite_ref-sp800-63B_9-2" class="reference"><a href="#cite_note-sp800-63B-9"><span class="cite-bracket">[</span>9<span class="cite-bracket">]</span></a></sup><sup class="reference nowrap"><span title="Page / location: 5.1.1.2">: 5.1.1.2 </span></sup> </p> <div class="mw-heading mw-heading2"><h2 id="See_also">See also</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Cryptographic_hash_function&action=edit&section=28" title="Edit section: See also"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <style data-mw-deduplicate="TemplateStyles:r1184024115">.mw-parser-output .div-col{margin-top:0.3em;column-width:30em}.mw-parser-output .div-col-small{font-size:90%}.mw-parser-output .div-col-rules{column-rule:1px solid #aaa}.mw-parser-output .div-col dl,.mw-parser-output .div-col ol,.mw-parser-output .div-col ul{margin-top:0}.mw-parser-output .div-col li,.mw-parser-output .div-col dd{page-break-inside:avoid;break-inside:avoid-column}</style><div class="div-col" style="column-width: 23em;"> <ul><li><a href="/wiki/Avalanche_effect" title="Avalanche effect">Avalanche effect</a></li> <li><a href="/wiki/Comparison_of_cryptographic_hash_functions" title="Comparison of cryptographic hash functions">Comparison of cryptographic hash functions</a></li> <li><a href="/wiki/Cryptographic_agility" title="Cryptographic agility">Cryptographic agility</a></li> <li><a href="/wiki/CRYPTREC" title="CRYPTREC">CRYPTREC</a></li> <li><a href="/wiki/File_fixity" title="File fixity">File fixity</a></li> <li><a href="/wiki/HMAC" title="HMAC">HMAC</a></li> <li><a href="/wiki/Hash_chain" title="Hash chain">Hash chain</a></li> <li><a href="/wiki/Length_extension_attack" title="Length extension attack">Length extension attack</a></li> <li><a href="/wiki/MD5CRK" title="MD5CRK">MD5CRK</a></li> <li><a href="/wiki/Message_authentication_code" title="Message authentication code">Message authentication code</a></li> <li><a href="/wiki/NESSIE" title="NESSIE">NESSIE</a></li> <li><a href="/wiki/PGP_word_list" title="PGP word list">PGP word list</a></li> <li><a href="/wiki/Random_oracle" title="Random oracle">Random oracle</a></li> <li><a href="/wiki/Security_of_cryptographic_hash_functions" title="Security of cryptographic hash functions">Security of cryptographic hash functions</a></li> <li><a href="/wiki/SHA-3" title="SHA-3">SHA-3</a></li> <li><a href="/wiki/Universal_one-way_hash_function" title="Universal one-way hash function">Universal one-way hash function</a></li></ul> </div> <div class="mw-heading mw-heading2"><h2 id="References">References</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Cryptographic_hash_function&action=edit&section=29" title="Edit section: References"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <div class="mw-heading mw-heading3"><h3 id="Citations">Citations</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Cryptographic_hash_function&action=edit&section=30" title="Edit section: Citations"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <style data-mw-deduplicate="TemplateStyles:r1239543626">.mw-parser-output .reflist{margin-bottom:0.5em;list-style-type:decimal}@media screen{.mw-parser-output .reflist{font-size:90%}}.mw-parser-output .reflist .references{font-size:100%;margin-bottom:0;list-style-type:inherit}.mw-parser-output .reflist-columns-2{column-width:30em}.mw-parser-output .reflist-columns-3{column-width:25em}.mw-parser-output .reflist-columns{margin-top:0.3em}.mw-parser-output .reflist-columns ol{margin-top:0}.mw-parser-output .reflist-columns li{page-break-inside:avoid;break-inside:avoid-column}.mw-parser-output .reflist-upper-alpha{list-style-type:upper-alpha}.mw-parser-output .reflist-upper-roman{list-style-type:upper-roman}.mw-parser-output .reflist-lower-alpha{list-style-type:lower-alpha}.mw-parser-output .reflist-lower-greek{list-style-type:lower-greek}.mw-parser-output .reflist-lower-roman{list-style-type:lower-roman}</style><div class="reflist"> <div class="mw-references-wrap mw-references-columns"><ol class="references"> <li id="cite_note-FOOTNOTEMenezesvan_OorschotVanstone201833-1"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTEMenezesvan_OorschotVanstone201833_1-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFMenezesvan_OorschotVanstone2018">Menezes, van Oorschot & Vanstone 2018</a>, p. 33.</span> </li> <li id="cite_note-wjryW-2"><span class="mw-cite-backlink"><b><a href="#cite_ref-wjryW_2-0">^</a></b></span> <span class="reference-text"><style data-mw-deduplicate="TemplateStyles:r1238218222">.mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free.id-lock-free a{background:url("//upload.wikimedia.org/wikipedia/commons/6/65/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited.id-lock-limited a,.mw-parser-output .id-lock-registration.id-lock-registration a{background:url("//upload.wikimedia.org/wikipedia/commons/d/d6/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription.id-lock-subscription a{background:url("//upload.wikimedia.org/wikipedia/commons/a/aa/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-ws-icon a{background:url("//upload.wikimedia.org/wikipedia/commons/4/4c/Wikisource-logo.svg")right 0.1em center/12px no-repeat}body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-free a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-limited a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-registration a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-subscription a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .cs1-ws-icon a{background-size:contain;padding:0 1em 0 0}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:var(--color-error,#d33)}.mw-parser-output .cs1-visible-error{color:var(--color-error,#d33)}.mw-parser-output .cs1-maint{display:none;color:#085;margin-left:0.3em}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}@media screen{.mw-parser-output .cs1-format{font-size:95%}html.skin-theme-clientpref-night .mw-parser-output .cs1-maint{color:#18911f}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .cs1-maint{color:#18911f}}</style><cite id="CITEREFSchneier" class="citation web cs1"><a href="/wiki/Bruce_Schneier" title="Bruce Schneier">Schneier, Bruce</a>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20160316114109/https://www.schneier.com/essays/archives/2004/08/cryptanalysis_of_md5.html">"Cryptanalysis of MD5 and SHA: Time for a New Standard"</a>. <i>Computerworld</i>. Archived from <a rel="nofollow" class="external text" href="https://www.schneier.com/essays/archives/2004/08/cryptanalysis_of_md5.html">the original</a> on 2016-03-16<span class="reference-accessdate">. Retrieved <span class="nowrap">2016-04-20</span></span>. <q>Much more than encryption algorithms, one-way hash functions are the workhorses of modern cryptography.</q></cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=Computerworld&rft.atitle=Cryptanalysis+of+MD5+and+SHA%3A+Time+for+a+New+Standard&rft.aulast=Schneier&rft.aufirst=Bruce&rft_id=https%3A%2F%2Fwww.schneier.com%2Fessays%2Farchives%2F2004%2F08%2Fcryptanalysis_of_md5.html&rfr_id=info%3Asid%2Fen.wikipedia.org%3ACryptographic+hash+function" class="Z3988"></span></span> </li> <li id="cite_note-FOOTNOTEAumasson2017106-3"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTEAumasson2017106_3-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFAumasson2017">Aumasson 2017</a>, p. 106.</span> </li> <li id="cite_note-FOOTNOTEKatzLindell2014155–157,_190,_232-4"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTEKatzLindell2014155–157,_190,_232_4-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFKatzLindell2014">Katz & Lindell 2014</a>, pp. 155–157, 190, 232.</span> </li> <li id="cite_note-FOOTNOTERogawayShrimpton2004in_Sec._5._Implications-5"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTERogawayShrimpton2004in_Sec._5._Implications_5-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFRogawayShrimpton2004">Rogaway & Shrimpton 2004</a>, in Sec. 5. Implications.</span> </li> <li id="cite_note-Y0rF6-6"><span class="mw-cite-backlink"><b><a href="#cite_ref-Y0rF6_6-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFDuongRizzo" class="citation web cs1">Duong, Thai; Rizzo, Juliano. <a rel="nofollow" class="external text" href="http://vnhacker.blogspot.com/2009/09/flickrs-api-signature-forgery.html">"Flickr's API Signature Forgery Vulnerability"</a>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20130815164303/http://vnhacker.blogspot.com/2009/09/flickrs-api-signature-forgery.html">Archived</a> from the original on 2013-08-15<span class="reference-accessdate">. Retrieved <span class="nowrap">2012-12-07</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Flickr%27s+API+Signature+Forgery+Vulnerability&rft.aulast=Duong&rft.aufirst=Thai&rft.au=Rizzo%2C+Juliano&rft_id=http%3A%2F%2Fvnhacker.blogspot.com%2F2009%2F09%2Fflickrs-api-signature-forgery.html&rfr_id=info%3Asid%2Fen.wikipedia.org%3ACryptographic+hash+function" class="Z3988"></span></span> </li> <li id="cite_note-FOOTNOTELyubashevskyMicciancioPeikertRosen200854–72-7"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTELyubashevskyMicciancioPeikertRosen200854–72_7-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFLyubashevskyMicciancioPeikertRosen2008">Lyubashevsky et al. 2008</a>, pp. 54–72.</span> </li> <li id="cite_note-e87Bo-8"><span class="mw-cite-backlink"><b><a href="#cite_ref-e87Bo_8-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFPerrin2007" class="citation magazine cs1">Perrin, Chad (December 5, 2007). <a rel="nofollow" class="external text" href="https://www.techrepublic.com/blog/security/use-md5-hashes-to-verify-software-downloads/374">"Use MD5 hashes to verify software downloads"</a>. <i>TechRepublic</i>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20121018075308/http://www.techrepublic.com/blog/security/use-md5-hashes-to-verify-software-downloads/374">Archived</a> from the original on October 18, 2012<span class="reference-accessdate">. Retrieved <span class="nowrap">March 2,</span> 2013</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.jtitle=TechRepublic&rft.atitle=Use+MD5+hashes+to+verify+software+downloads&rft.date=2007-12-05&rft.aulast=Perrin&rft.aufirst=Chad&rft_id=http%3A%2F%2Fwww.techrepublic.com%2Fblog%2Fsecurity%2Fuse-md5-hashes-to-verify-software-downloads%2F374&rfr_id=info%3Asid%2Fen.wikipedia.org%3ACryptographic+hash+function" class="Z3988"></span></span> </li> <li id="cite_note-sp800-63B-9"><span class="mw-cite-backlink">^ <a href="#cite_ref-sp800-63B_9-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-sp800-63B_9-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-sp800-63B_9-2"><sup><i><b>c</b></i></sup></a></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFGrassi_Paul_A.2017" class="citation book cs1">Grassi Paul A. (June 2017). <i>SP 800-63B-3 – Digital Identity Guidelines, Authentication and Lifecycle Management</i>. NIST. <a href="/wiki/Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.6028%2FNIST.SP.800-63b">10.6028/NIST.SP.800-63b</a>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.btitle=SP+800-63B-3+%E2%80%93+Digital+Identity+Guidelines%2C+Authentication+and+Lifecycle+Management&rft.pub=NIST&rft.date=2017-06&rft_id=info%3Adoi%2F10.6028%2FNIST.SP.800-63b&rft.au=Grassi+Paul+A.&rfr_id=info%3Asid%2Fen.wikipedia.org%3ACryptographic+hash+function" class="Z3988"></span></span> </li> <li id="cite_note-LkIref-10"><span class="mw-cite-backlink">^ <a href="#cite_ref-LkIref_10-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-LkIref_10-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFLucks2004" class="citation journal cs1">Lucks, Stefan (2004). <a rel="nofollow" class="external text" href="https://eprint.iacr.org/2004/253">"Design Principles for Iterated Hash Functions"</a>. <i>Cryptology ePrint Archive</i>. Report 2004/253. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20170521181207/http://eprint.iacr.org/2004/253">Archived</a> from the original on 2017-05-21<span class="reference-accessdate">. Retrieved <span class="nowrap">2017-07-18</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.jtitle=Cryptology+ePrint+Archive&rft.atitle=Design+Principles+for+Iterated+Hash+Functions&rft.date=2004&rft.aulast=Lucks&rft.aufirst=Stefan&rft_id=https%3A%2F%2Feprint.iacr.org%2F2004%2F253&rfr_id=info%3Asid%2Fen.wikipedia.org%3ACryptographic+hash+function" class="Z3988"></span></span> </li> <li id="cite_note-FOOTNOTEKelseySchneier2005474–490-11"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTEKelseySchneier2005474–490_11-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFKelseySchneier2005">Kelsey & Schneier 2005</a>, pp. 474–490.</span> </li> <li id="cite_note-EjaBK-12"><span class="mw-cite-backlink"><b><a href="#cite_ref-EjaBK_12-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFBihamDunkelman2006" class="citation conference cs1">Biham, Eli; Dunkelman, Orr (24 August 2006). <a rel="nofollow" class="external text" href="https://eprint.iacr.org/2007/278"><i>A Framework for Iterative Hash Functions – HAIFA</i></a>. Second NIST Cryptographic Hash Workshop. <i>Cryptology ePrint Archive</i>. Report 2007/278. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20170428160757/http://eprint.iacr.org/2007/278">Archived</a> from the original on 28 April 2017<span class="reference-accessdate">. Retrieved <span class="nowrap">18 July</span> 2017</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=conference&rft.jtitle=Cryptology+ePrint+Archive&rft.atitle=A+Framework+for+Iterative+Hash+Functions+%E2%80%93+HAIFA&rft.date=2006-08-24&rft.aulast=Biham&rft.aufirst=Eli&rft.au=Dunkelman%2C+Orr&rft_id=https%3A%2F%2Feprint.iacr.org%2F2007%2F278&rfr_id=info%3Asid%2Fen.wikipedia.org%3ACryptographic+hash+function" class="Z3988"></span></span> </li> <li id="cite_note-FOOTNOTENandiPaul2010-13"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTENandiPaul2010_13-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFNandiPaul2010">Nandi & Paul 2010</a>.</span> </li> <li id="cite_note-ZY8I9-14"><span class="mw-cite-backlink"><b><a href="#cite_ref-ZY8I9_14-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFDobraunigEichlsederMendel2015" class="citation report cs1">Dobraunig, Christoph; Eichlseder, Maria; Mendel, Florian (February 2015). <a rel="nofollow" class="external text" href="http://www.cryptrec.go.jp/estimation/techrep_id2401.pdf">Security Evaluation of SHA-224, SHA-512/224, and SHA-512/256</a> <span class="cs1-format">(PDF)</span> (Report). <a rel="nofollow" class="external text" href="https://web.archive.org/web/20161227161240/http://cryptrec.go.jp/estimation/techrep_id2401.pdf">Archived</a> <span class="cs1-format">(PDF)</span> from the original on 2016-12-27<span class="reference-accessdate">. Retrieved <span class="nowrap">2017-07-18</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=report&rft.btitle=Security+Evaluation+of+SHA-224%2C+SHA-512%2F224%2C+and+SHA-512%2F256&rft.date=2015-02&rft.aulast=Dobraunig&rft.aufirst=Christoph&rft.au=Eichlseder%2C+Maria&rft.au=Mendel%2C+Florian&rft_id=http%3A%2F%2Fwww.cryptrec.go.jp%2Festimation%2Ftechrep_id2401.pdf&rfr_id=info%3Asid%2Fen.wikipedia.org%3ACryptographic+hash+function" class="Z3988"></span></span> </li> <li id="cite_note-FOOTNOTEMendelRechbergerSchläffer2009145-15"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTEMendelRechbergerSchläffer2009145_15-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFMendelRechbergerSchläffer2009">Mendel et al.</a>, p. 145:Concatenating ... is often used by implementors to "hedge bets" on hash functions. A combiner of the form MD5</span> </li> <li id="cite_note-FOOTNOTEHarnikKilianNaorReingold200599-16"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTEHarnikKilianNaorReingold200599_16-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFHarnikKilianNaorReingold2005">Harnik et al. 2005</a>, p. 99: the concatenation of hash functions as suggested in the TLS... is guaranteed to be as secure as the candidate that remains secure.</span> </li> <li id="cite_note-FOOTNOTEJoux2004-17"><span class="mw-cite-backlink">^ <a href="#cite_ref-FOOTNOTEJoux2004_17-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-FOOTNOTEJoux2004_17-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><a href="#CITEREFJoux2004">Joux 2004</a>.</span> </li> <li id="cite_note-urlGmane-18"><span class="mw-cite-backlink"><b><a href="#cite_ref-urlGmane_18-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFFinney2004" class="citation web cs1"><a href="/wiki/Hal_Finney_(computer_scientist)" title="Hal Finney (computer scientist)">Finney, Hal</a> (August 20, 2004). <a rel="nofollow" class="external text" href="https://web.archive.org/web/20160409095104/http://article.gmane.org/gmane.comp.encryption.general/5154">"More Problems with Hash Functions"</a>. <i>The Cryptography Mailing List</i>. Archived from <a rel="nofollow" class="external text" href="http://article.gmane.org/gmane.comp.encryption.general/5154">the original</a> on April 9, 2016<span class="reference-accessdate">. Retrieved <span class="nowrap">May 25,</span> 2016</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=The+Cryptography+Mailing+List&rft.atitle=More+Problems+with+Hash+Functions&rft.date=2004-08-20&rft.aulast=Finney&rft.aufirst=Hal&rft_id=http%3A%2F%2Farticle.gmane.org%2Fgmane.comp.encryption.general%2F5154&rfr_id=info%3Asid%2Fen.wikipedia.org%3ACryptographic+hash+function" class="Z3988"></span></span> </li> <li id="cite_note-FOOTNOTEHochShamir2008616–630-19"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTEHochShamir2008616–630_19-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFHochShamir2008">Hoch & Shamir 2008</a>, pp. 616–630.</span> </li> <li id="cite_note-UNudB-20"><span class="mw-cite-backlink"><b><a href="#cite_ref-UNudB_20-0">^</a></b></span> <span class="reference-text">Andrew Regenscheid, Ray Perlner, Shu-Jen Chang, John Kelsey, Mridul Nandi, Souradyuti Paul, <a rel="nofollow" class="external text" href="https://nvlpubs.nist.gov/nistpubs/Legacy/IR/nistir7620.pdf">Status Report on the First Round of the SHA-3 Cryptographic Hash Algorithm Competition</a> <a rel="nofollow" class="external text" href="https://web.archive.org/web/20180605095224/https://nvlpubs.nist.gov/nistpubs/Legacy/IR/nistir7620.pdf">Archived</a> 2018-06-05 at the <a href="/wiki/Wayback_Machine" title="Wayback Machine">Wayback Machine</a></span> </li> <li id="cite_note-Mpt5q-21"><span class="mw-cite-backlink"><b><a href="#cite_ref-Mpt5q_21-0">^</a></b></span> <span class="reference-text">XiaoyunWang, Dengguo Feng, Xuejia Lai, Hongbo Yu, <a rel="nofollow" class="external text" href="https://eprint.iacr.org/2004/199.pdf">Collisions for Hash Functions MD4, MD5, HAVAL-128, and RIPEMD</a> <a rel="nofollow" class="external text" href="https://web.archive.org/web/20041220195626/https://eprint.iacr.org/2004/199.pdf">Archived</a> 2004-12-20 at the <a href="/wiki/Wayback_Machine" title="Wayback Machine">Wayback Machine</a></span> </li> <li id="cite_note-R7ASX-22"><span class="mw-cite-backlink"><b><a href="#cite_ref-R7ASX_22-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFAlshaikhliAlAhmad2015" class="citation cs2">Alshaikhli, Imad Fakhri; AlAhmad, Mohammad Abdulateef (2015), "Cryptographic Hash Function", <i>Handbook of Research on Threat Detection and Countermeasures in Network Security</i>, IGI Global, pp. 80–94, <a href="/wiki/Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.4018%2F978-1-4666-6583-5.ch006">10.4018/978-1-4666-6583-5.ch006</a>, <a href="/wiki/ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <a href="/wiki/Special:BookSources/978-1-4666-6583-5" title="Special:BookSources/978-1-4666-6583-5"><bdi>978-1-4666-6583-5</bdi></a></cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.jtitle=Handbook+of+Research+on+Threat+Detection+and+Countermeasures+in+Network+Security&rft.atitle=Cryptographic+Hash+Function&rft.pages=80-94&rft.date=2015&rft_id=info%3Adoi%2F10.4018%2F978-1-4666-6583-5.ch006&rft.isbn=978-1-4666-6583-5&rft.aulast=Alshaikhli&rft.aufirst=Imad+Fakhri&rft.au=AlAhmad%2C+Mohammad+Abdulateef&rfr_id=info%3Asid%2Fen.wikipedia.org%3ACryptographic+hash+function" class="Z3988"></span></span> </li> <li id="cite_note-NhaRr-23"><span class="mw-cite-backlink"><b><a href="#cite_ref-NhaRr_23-0">^</a></b></span> <span class="reference-text">Xiaoyun Wang, <a href="/wiki/Yiqun_Lisa_Yin" title="Yiqun Lisa Yin">Yiqun Lisa Yin</a>, and Hongbo Yu, "<a rel="nofollow" class="external text" href="http://people.csail.mit.edu/yiqun/SHA1AttackProceedingVersion.pdf">Finding Collisions in the Full SHA-1</a> <a rel="nofollow" class="external text" href="https://web.archive.org/web/20170715064257/http://people.csail.mit.edu/yiqun/SHA1AttackProceedingVersion.pdf">Archived</a> 2017-07-15 at the <a href="/wiki/Wayback_Machine" title="Wayback Machine">Wayback Machine</a>".</span> </li> <li id="cite_note-CmkOx-24"><span class="mw-cite-backlink"><b><a href="#cite_ref-CmkOx_24-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFSchneier2005" class="citation web cs1">Schneier, Bruce (February 18, 2005). <a rel="nofollow" class="external text" href="http://www.schneier.com/blog/archives/2005/02/cryptanalysis_o.html">"Cryptanalysis of SHA-1"</a>. <i>Schneier on Security</i>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20130116090105/http://www.schneier.com/blog/archives/2005/02/cryptanalysis_o.html">Archived</a> from the original on January 16, 2013<span class="reference-accessdate">. Retrieved <span class="nowrap">March 30,</span> 2009</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=Schneier+on+Security&rft.atitle=Cryptanalysis+of+SHA-1&rft.date=2005-02-18&rft.aulast=Schneier&rft.aufirst=Bruce&rft_id=http%3A%2F%2Fwww.schneier.com%2Fblog%2Farchives%2F2005%2F02%2Fcryptanalysis_o.html&rfr_id=info%3Asid%2Fen.wikipedia.org%3ACryptographic+hash+function" class="Z3988"></span> Summarizes Wang et al. results and their implications.</span> </li> <li id="cite_note-xW1m9-25"><span class="mw-cite-backlink"><b><a href="#cite_ref-xW1m9_25-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFBrewster2017" class="citation news cs1">Brewster, Thomas (Feb 23, 2017). <a rel="nofollow" class="external text" href="https://www.forbes.com/sites/thomasbrewster/2017/02/23/google-sha-1-hack-why-it-matters/#3f73df04c8cd">"Google Just 'Shattered' An Old Crypto Algorithm – Here's Why That's Big For Web Security"</a>. <i>Forbes</i>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20170224140451/https://www.forbes.com/sites/thomasbrewster/2017/02/23/google-sha-1-hack-why-it-matters/#3f73df04c8cd">Archived</a> from the original on 2017-02-24<span class="reference-accessdate">. Retrieved <span class="nowrap">2017-02-24</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.jtitle=Forbes&rft.atitle=Google+Just+%27Shattered%27+An+Old+Crypto+Algorithm+%E2%80%93+Here%27s+Why+That%27s+Big+For+Web+Security&rft.date=2017-02-23&rft.aulast=Brewster&rft.aufirst=Thomas&rft_id=https%3A%2F%2Fwww.forbes.com%2Fsites%2Fthomasbrewster%2F2017%2F02%2F23%2Fgoogle-sha-1-hack-why-it-matters%2F%233f73df04c8cd&rfr_id=info%3Asid%2Fen.wikipedia.org%3ACryptographic+hash+function" class="Z3988"></span></span> </li> <li id="cite_note-MrThfd-26"><span class="mw-cite-backlink"><b><a href="#cite_ref-MrThfd_26-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFHaleviKrawczyk" class="citation web cs1">Halevi, Shai; Krawczyk, Hugo. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20220522134202/http://webee.technion.ac.il/~hugo/rhash/">"Randomized Hashing and Digital Signatures"</a>. Archived from <a rel="nofollow" class="external text" href="http://webee.technion.ac.il/~hugo/rhash/">the original</a> on May 22, 2022.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Randomized+Hashing+and+Digital+Signatures&rft.aulast=Halevi&rft.aufirst=Shai&rft.au=Krawczyk%2C+Hugo&rft_id=http%3A%2F%2Fwebee.technion.ac.il%2F~hugo%2Frhash%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3ACryptographic+hash+function" class="Z3988"></span></span> </li> <li id="cite_note-bVltK-27"><span class="mw-cite-backlink"><b><a href="#cite_ref-bVltK_27-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFSotirovStevensAppelbaumLenstra2008" class="citation web cs1">Sotirov, A; Stevens, M; Appelbaum, J; Lenstra, A; Molnar, D; Osvik, D A; de Weger, B (December 30, 2008). <a rel="nofollow" class="external text" href="http://www.win.tue.nl/hashclash/rogue-ca/">"MD5 considered harmful today: Creating a rogue CA certificate"</a>. <i>HashClash</i>. Department of Mathematics and Computer Science of Eindhoven University of Technology. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20170325033522/http://www.win.tue.nl/hashclash/rogue-ca/">Archived</a> from the original on March 25, 2017<span class="reference-accessdate">. Retrieved <span class="nowrap">March 29,</span> 2009</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=HashClash&rft.atitle=MD5+considered+harmful+today%3A+Creating+a+rogue+CA+certificate&rft.date=2008-12-30&rft.aulast=Sotirov&rft.aufirst=A&rft.au=Stevens%2C+M&rft.au=Appelbaum%2C+J&rft.au=Lenstra%2C+A&rft.au=Molnar%2C+D&rft.au=Osvik%2C+D+A&rft.au=de+Weger%2C+B&rft_id=http%3A%2F%2Fwww.win.tue.nl%2Fhashclash%2Frogue-ca%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3ACryptographic+hash+function" class="Z3988"></span></span> </li> <li id="cite_note-jjUS1-28"><span class="mw-cite-backlink"><b><a href="#cite_ref-jjUS1_28-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFSwinhoeHill2020" class="citation news cs1">Swinhoe, Dan; Hill, Michael (April 17, 2020). <a rel="nofollow" class="external text" href="https://www.csoonline.com/article/2130877/the-biggest-data-breaches-of-the-21st-century.html">"The 15 biggest data breaches of the 21st century"</a>. CSO Magazine. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20201124152328/https://www.csoonline.com/article/2130877/the-biggest-data-breaches-of-the-21st-century.html">Archived</a> from the original on November 24, 2020<span class="reference-accessdate">. Retrieved <span class="nowrap">November 25,</span> 2020</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.atitle=The+15+biggest+data+breaches+of+the+21st+century&rft.date=2020-04-17&rft.aulast=Swinhoe&rft.aufirst=Dan&rft.au=Hill%2C+Michael&rft_id=https%3A%2F%2Fwww.csoonline.com%2Farticle%2F2130877%2Fthe-biggest-data-breaches-of-the-21st-century.html&rfr_id=info%3Asid%2Fen.wikipedia.org%3ACryptographic+hash+function" class="Z3988"></span></span> </li> <li id="cite_note-2tECU-29"><span class="mw-cite-backlink"><b><a href="#cite_ref-2tECU_29-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFGoodin2012" class="citation web cs1">Goodin, Dan (2012-12-10). <a rel="nofollow" class="external text" href="https://arstechnica.com/information-technology/2012/12/25-gpu-cluster-cracks-every-standard-windows-password-in-6-hours/">"25-GPU cluster cracks every standard Windows password in <6 hours"</a>. <a href="/wiki/Ars_Technica" title="Ars Technica">Ars Technica</a>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20201121132005/https://arstechnica.com/information-technology/2012/12/25-gpu-cluster-cracks-every-standard-windows-password-in-6-hours/">Archived</a> from the original on 2020-11-21<span class="reference-accessdate">. Retrieved <span class="nowrap">2020-11-23</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=25-GPU+cluster+cracks+every+standard+Windows+password+in+%3C6+hours&rft.pub=Ars+Technica&rft.date=2012-12-10&rft.aulast=Goodin&rft.aufirst=Dan&rft_id=https%3A%2F%2Farstechnica.com%2Finformation-technology%2F2012%2F12%2F25-gpu-cluster-cracks-every-standard-windows-password-in-6-hours%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3ACryptographic+hash+function" class="Z3988"></span></span> </li> <li id="cite_note-28vy8-30"><span class="mw-cite-backlink"><b><a href="#cite_ref-28vy8_30-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFClaburn2019" class="citation web cs1">Claburn, Thomas (February 14, 2019). <a rel="nofollow" class="external text" href="https://www.theregister.co.uk/2019/02/14/password_length/">"Use an 8-char Windows NTLM password? Don't. Every single one can be cracked in under 2.5hrs"</a>. <i>The Register</i>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20200425091602/https://www.theregister.co.uk/2019/02/14/password_length/">Archived</a> from the original on 2020-04-25<span class="reference-accessdate">. Retrieved <span class="nowrap">2020-11-26</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=The+Register&rft.atitle=Use+an+8-char+Windows+NTLM+password%3F+Don%27t.+Every+single+one+can+be+cracked+in+under+2.5hrs&rft.date=2019-02-14&rft.aulast=Claburn&rft.aufirst=Thomas&rft_id=https%3A%2F%2Fwww.theregister.co.uk%2F2019%2F02%2F14%2Fpassword_length%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3ACryptographic+hash+function" class="Z3988"></span></span> </li> <li id="cite_note-TbJcd-31"><span class="mw-cite-backlink"><b><a href="#cite_ref-TbJcd_31-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://improsec.com/tech-blog/mind-blowing-gpu-performance">"Mind-blowing development in GPU performance"</a>. Improsec. January 3, 2020. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20230409171025/https://improsec.com/tech-blog/mind-blowing-gpu-performance">Archived</a> from the original on Apr 9, 2023.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Mind-blowing+development+in+GPU+performance&rft.pub=Improsec&rft.date=2020-01-03&rft_id=https%3A%2F%2Fimprosec.com%2Ftech-blog%2Fmind-blowing-gpu-performance&rfr_id=info%3Asid%2Fen.wikipedia.org%3ACryptographic+hash+function" class="Z3988"></span></span> </li> </ol></div></div> <div class="mw-heading mw-heading3"><h3 id="Sources">Sources</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Cryptographic_hash_function&action=edit&section=31" title="Edit section: Sources"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <style data-mw-deduplicate="TemplateStyles:r1239549316">.mw-parser-output .refbegin{margin-bottom:0.5em}.mw-parser-output .refbegin-hanging-indents>ul{margin-left:0}.mw-parser-output .refbegin-hanging-indents>ul>li{margin-left:0;padding-left:3.2em;text-indent:-3.2em}.mw-parser-output .refbegin-hanging-indents ul,.mw-parser-output .refbegin-hanging-indents ul li{list-style:none}@media(max-width:720px){.mw-parser-output .refbegin-hanging-indents>ul>li{padding-left:1.6em;text-indent:-1.6em}}.mw-parser-output .refbegin-columns{margin-top:0.3em}.mw-parser-output .refbegin-columns ul{margin-top:0}.mw-parser-output .refbegin-columns li{page-break-inside:avoid;break-inside:avoid-column}@media screen{.mw-parser-output .refbegin{font-size:90%}}</style><div class="refbegin" style=""> <ul><li><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFHarnikKilianNaorReingold2005" class="citation book cs1">Harnik, Danny; Kilian, Joe; Naor, Moni; Reingold, Omer; Rosen, Alon (2005). "On Robust Combiners for Oblivious Transfer and Other Primitives". <i>Advances in Cryptology – EUROCRYPT 2005</i>. Lecture Notes in Computer Science. Vol. 3494. pp. 96–113. <a href="/wiki/Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1007%2F11426639_6">10.1007/11426639_6</a>. <a href="/wiki/ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <a href="/wiki/Special:BookSources/978-3-540-25910-7" title="Special:BookSources/978-3-540-25910-7"><bdi>978-3-540-25910-7</bdi></a>. <a href="/wiki/ISSN_(identifier)" class="mw-redirect" title="ISSN (identifier)">ISSN</a> <a rel="nofollow" class="external text" href="https://search.worldcat.org/issn/0302-9743">0302-9743</a>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=bookitem&rft.atitle=On+Robust+Combiners+for+Oblivious+Transfer+and+Other+Primitives&rft.btitle=Advances+in+Cryptology+%E2%80%93+EUROCRYPT+2005&rft.series=Lecture+Notes+in+Computer+Science&rft.pages=96-113&rft.date=2005&rft.issn=0302-9743&rft_id=info%3Adoi%2F10.1007%2F11426639_6&rft.isbn=978-3-540-25910-7&rft.aulast=Harnik&rft.aufirst=Danny&rft.au=Kilian%2C+Joe&rft.au=Naor%2C+Moni&rft.au=Reingold%2C+Omer&rft.au=Rosen%2C+Alon&rfr_id=info%3Asid%2Fen.wikipedia.org%3ACryptographic+hash+function" class="Z3988"></span></li> <li><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFHochShamir2008" class="citation book cs1">Hoch, Jonathan J.; Shamir, Adi (2008). "On the Strength of the Concatenated Hash Combiner when All the Hash Functions Are Weak". <i>Automata, Languages and Programming</i>. Lecture Notes in Computer Science. Vol. 5126. pp. 616–630. <a href="/wiki/Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1007%2F978-3-540-70583-3_50">10.1007/978-3-540-70583-3_50</a>. <a href="/wiki/ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <a href="/wiki/Special:BookSources/978-3-540-70582-6" title="Special:BookSources/978-3-540-70582-6"><bdi>978-3-540-70582-6</bdi></a>. <a href="/wiki/ISSN_(identifier)" class="mw-redirect" title="ISSN (identifier)">ISSN</a> <a rel="nofollow" class="external text" href="https://search.worldcat.org/issn/0302-9743">0302-9743</a>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=bookitem&rft.atitle=On+the+Strength+of+the+Concatenated+Hash+Combiner+when+All+the+Hash+Functions+Are+Weak&rft.btitle=Automata%2C+Languages+and+Programming&rft.series=Lecture+Notes+in+Computer+Science&rft.pages=616-630&rft.date=2008&rft.issn=0302-9743&rft_id=info%3Adoi%2F10.1007%2F978-3-540-70583-3_50&rft.isbn=978-3-540-70582-6&rft.aulast=Hoch&rft.aufirst=Jonathan+J.&rft.au=Shamir%2C+Adi&rfr_id=info%3Asid%2Fen.wikipedia.org%3ACryptographic+hash+function" class="Z3988"></span></li> <li><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFJoux2004" class="citation book cs1"><a href="/wiki/Antoine_Joux" title="Antoine Joux">Joux, Antoine</a> (2004). "Multicollisions in Iterated Hash Functions. Application to Cascaded Constructions". <i>Advances in Cryptology – CRYPTO 2004</i>. Lecture Notes in Computer Science. Vol. 3152. Berlin, Heidelberg: Springer Berlin Heidelberg. pp. 306–316. <a href="/wiki/Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://doi.org/10.1007%2F978-3-540-28628-8_19">10.1007/978-3-540-28628-8_19</a></span>. <a href="/wiki/ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <a href="/wiki/Special:BookSources/978-3-540-22668-0" title="Special:BookSources/978-3-540-22668-0"><bdi>978-3-540-22668-0</bdi></a>. <a href="/wiki/ISSN_(identifier)" class="mw-redirect" title="ISSN (identifier)">ISSN</a> <a rel="nofollow" class="external text" href="https://search.worldcat.org/issn/0302-9743">0302-9743</a>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=bookitem&rft.atitle=Multicollisions+in+Iterated+Hash+Functions.+Application+to+Cascaded+Constructions&rft.btitle=Advances+in+Cryptology+%E2%80%93+CRYPTO+2004&rft.place=Berlin%2C+Heidelberg&rft.series=Lecture+Notes+in+Computer+Science&rft.pages=306-316&rft.pub=Springer+Berlin+Heidelberg&rft.date=2004&rft.issn=0302-9743&rft_id=info%3Adoi%2F10.1007%2F978-3-540-28628-8_19&rft.isbn=978-3-540-22668-0&rft.aulast=Joux&rft.aufirst=Antoine&rfr_id=info%3Asid%2Fen.wikipedia.org%3ACryptographic+hash+function" class="Z3988"></span></li> <li><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFKelseySchneier2005" class="citation book cs1">Kelsey, John; Schneier, Bruce (2005). <a rel="nofollow" class="external text" href="https://eprint.iacr.org/2004/304">"Second Preimages on n-Bit Hash Functions for Much Less than 2 n Work"</a>. <i>Advances in Cryptology – EUROCRYPT 2005</i>. Lecture Notes in Computer Science. Vol. 3494. pp. 474–490. <a href="/wiki/Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://doi.org/10.1007%2F11426639_28">10.1007/11426639_28</a></span>. <a href="/wiki/ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <a href="/wiki/Special:BookSources/978-3-540-25910-7" title="Special:BookSources/978-3-540-25910-7"><bdi>978-3-540-25910-7</bdi></a>. <a href="/wiki/ISSN_(identifier)" class="mw-redirect" title="ISSN (identifier)">ISSN</a> <a rel="nofollow" class="external text" href="https://search.worldcat.org/issn/0302-9743">0302-9743</a>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20170316031946/http://eprint.iacr.org/2004/304">Archived</a> from the original on 2017-03-16<span class="reference-accessdate">. Retrieved <span class="nowrap">2017-07-18</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=bookitem&rft.atitle=Second+Preimages+on+n-Bit+Hash+Functions+for+Much+Less+than+2+n+Work&rft.btitle=Advances+in+Cryptology+%E2%80%93+EUROCRYPT+2005&rft.series=Lecture+Notes+in+Computer+Science&rft.pages=474-490&rft.date=2005&rft.issn=0302-9743&rft_id=info%3Adoi%2F10.1007%2F11426639_28&rft.isbn=978-3-540-25910-7&rft.aulast=Kelsey&rft.aufirst=John&rft.au=Schneier%2C+Bruce&rft_id=https%3A%2F%2Feprint.iacr.org%2F2004%2F304&rfr_id=info%3Asid%2Fen.wikipedia.org%3ACryptographic+hash+function" class="Z3988"></span></li> <li><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFKatzLindell2014" class="citation book cs1">Katz, Jonathan; Lindell, Yehuda (2014). <a rel="nofollow" class="external text" href="https://books.google.com/books?id=OWZYBQAAQBAJ&pg=PA155"><i>Introduction to Modern Cryptography</i></a> (2nd ed.). CRC Press. <a href="/wiki/ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <a href="/wiki/Special:BookSources/978-1-4665-7026-9" title="Special:BookSources/978-1-4665-7026-9"><bdi>978-1-4665-7026-9</bdi></a>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.btitle=Introduction+to+Modern+Cryptography&rft.edition=2nd&rft.pub=CRC+Press&rft.date=2014&rft.isbn=978-1-4665-7026-9&rft.aulast=Katz&rft.aufirst=Jonathan&rft.au=Lindell%2C+Yehuda&rft_id=https%3A%2F%2Fbooks.google.com%2Fbooks%3Fid%3DOWZYBQAAQBAJ%26pg%3DPA155&rfr_id=info%3Asid%2Fen.wikipedia.org%3ACryptographic+hash+function" class="Z3988"></span></li> <li><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFLyubashevskyMicciancioPeikertRosen2008" class="citation book cs1">Lyubashevsky, Vadim; Micciancio, Daniele; Peikert, Chris; Rosen, Alon (2008). "SWIFFT: A Modest Proposal for FFT Hashing". <i>Fast Software Encryption</i>. Lecture Notes in Computer Science. Vol. 5086. pp. 54–72. <a href="/wiki/Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://doi.org/10.1007%2F978-3-540-71039-4_4">10.1007/978-3-540-71039-4_4</a></span>. <a href="/wiki/ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <a href="/wiki/Special:BookSources/978-3-540-71038-7" title="Special:BookSources/978-3-540-71038-7"><bdi>978-3-540-71038-7</bdi></a>. <a href="/wiki/ISSN_(identifier)" class="mw-redirect" title="ISSN (identifier)">ISSN</a> <a rel="nofollow" class="external text" href="https://search.worldcat.org/issn/0302-9743">0302-9743</a>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=bookitem&rft.atitle=SWIFFT%3A+A+Modest+Proposal+for+FFT+Hashing&rft.btitle=Fast+Software+Encryption&rft.series=Lecture+Notes+in+Computer+Science&rft.pages=54-72&rft.date=2008&rft.issn=0302-9743&rft_id=info%3Adoi%2F10.1007%2F978-3-540-71039-4_4&rft.isbn=978-3-540-71038-7&rft.aulast=Lyubashevsky&rft.aufirst=Vadim&rft.au=Micciancio%2C+Daniele&rft.au=Peikert%2C+Chris&rft.au=Rosen%2C+Alon&rfr_id=info%3Asid%2Fen.wikipedia.org%3ACryptographic+hash+function" class="Z3988"></span></li> <li><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFMendelRechbergerSchläffer2009" class="citation book cs1">Mendel, Florian; Rechberger, Christian; Schläffer, Martin (2009). "MD5 is Weaker Than Weak: Attacks on Concatenated Combiners". <i>Advances in Cryptology – ASIACRYPT 2009</i>. Lecture Notes in Computer Science. Vol. 5912. pp. 144–161. <a href="/wiki/Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://doi.org/10.1007%2F978-3-642-10366-7_9">10.1007/978-3-642-10366-7_9</a></span>. <a href="/wiki/ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <a href="/wiki/Special:BookSources/978-3-642-10365-0" title="Special:BookSources/978-3-642-10365-0"><bdi>978-3-642-10365-0</bdi></a>. <a href="/wiki/ISSN_(identifier)" class="mw-redirect" title="ISSN (identifier)">ISSN</a> <a rel="nofollow" class="external text" href="https://search.worldcat.org/issn/0302-9743">0302-9743</a>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=bookitem&rft.atitle=MD5+is+Weaker+Than+Weak%3A+Attacks+on+Concatenated+Combiners&rft.btitle=Advances+in+Cryptology+%E2%80%93+ASIACRYPT+2009&rft.series=Lecture+Notes+in+Computer+Science&rft.pages=144-161&rft.date=2009&rft.issn=0302-9743&rft_id=info%3Adoi%2F10.1007%2F978-3-642-10366-7_9&rft.isbn=978-3-642-10365-0&rft.aulast=Mendel&rft.aufirst=Florian&rft.au=Rechberger%2C+Christian&rft.au=Schl%C3%A4ffer%2C+Martin&rfr_id=info%3Asid%2Fen.wikipedia.org%3ACryptographic+hash+function" class="Z3988"></span></li> <li><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFNandiPaul2010" class="citation book cs1">Nandi, Mridul; Paul, Souradyuti (2010). <a rel="nofollow" class="external text" href="https://lirias.kuleuven.be/handle/123456789/318700">"Speeding up the Wide-Pipe: Secure and Fast Hashing"</a>. <i>Progress in Cryptology - INDOCRYPT 2010</i>. Lecture Notes in Computer Science. Vol. 6498. pp. 144–162. <a href="/wiki/Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1007%2F978-3-642-17401-8_12">10.1007/978-3-642-17401-8_12</a>. <a href="/wiki/ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <a href="/wiki/Special:BookSources/978-3-642-17400-1" title="Special:BookSources/978-3-642-17400-1"><bdi>978-3-642-17400-1</bdi></a>. <a href="/wiki/ISSN_(identifier)" class="mw-redirect" title="ISSN (identifier)">ISSN</a> <a rel="nofollow" class="external text" href="https://search.worldcat.org/issn/0302-9743">0302-9743</a>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=bookitem&rft.atitle=Speeding+up+the+Wide-Pipe%3A+Secure+and+Fast+Hashing&rft.btitle=Progress+in+Cryptology+-+INDOCRYPT+2010&rft.series=Lecture+Notes+in+Computer+Science&rft.pages=144-162&rft.date=2010&rft.issn=0302-9743&rft_id=info%3Adoi%2F10.1007%2F978-3-642-17401-8_12&rft.isbn=978-3-642-17400-1&rft.aulast=Nandi&rft.aufirst=Mridul&rft.au=Paul%2C+Souradyuti&rft_id=https%3A%2F%2Flirias.kuleuven.be%2Fhandle%2F123456789%2F318700&rfr_id=info%3Asid%2Fen.wikipedia.org%3ACryptographic+hash+function" class="Z3988"></span></li> <li><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFRogawayShrimpton2004" class="citation book cs1">Rogaway, P.; Shrimpton, T. (2004). <a rel="nofollow" class="external text" href="https://books.google.com/books?id=c4P4OYcy99kC&pg=PA371">"Cryptographic Hash-Function Basics: Definitions, Implications, and Separations for Preimage Resistance, Second-Preimage Resistance, and Collision Resistance"</a>. In Roy, B.; Mier, W. (eds.). <a rel="nofollow" class="external text" href="https://books.google.com/books?id=c4P4OYcy99kC&pg=PA371"><i>Fast Software Encryption: 11th International Workshop, FSE 2004</i></a>. Vol. 3017. Lecture Notes in Computer Science: Springer. pp. 371–388. <a href="/wiki/Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://doi.org/10.1007%2F978-3-540-25937-4_24">10.1007/978-3-540-25937-4_24</a></span>. <a href="/wiki/ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <a href="/wiki/Special:BookSources/3-540-22171-9" title="Special:BookSources/3-540-22171-9"><bdi>3-540-22171-9</bdi></a>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20221130071706/https://books.google.com/books?id=c4P4OYcy99kC&pg=PA371">Archived</a> from the original on 2022-11-30<span class="reference-accessdate">. Retrieved <span class="nowrap">2022-11-30</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=bookitem&rft.atitle=Cryptographic+Hash-Function+Basics%3A+Definitions%2C+Implications%2C+and+Separations+for+Preimage+Resistance%2C+Second-Preimage+Resistance%2C+and+Collision+Resistance&rft.btitle=Fast+Software+Encryption%3A+11th+International+Workshop%2C+FSE+2004&rft.place=Lecture+Notes+in+Computer+Science&rft.pages=371-388&rft.pub=Springer&rft.date=2004&rft_id=info%3Adoi%2F10.1007%2F978-3-540-25937-4_24&rft.isbn=3-540-22171-9&rft.aulast=Rogaway&rft.aufirst=P.&rft.au=Shrimpton%2C+T.&rft_id=https%3A%2F%2Fbooks.google.com%2Fbooks%3Fid%3Dc4P4OYcy99kC%26pg%3DPA371&rfr_id=info%3Asid%2Fen.wikipedia.org%3ACryptographic+hash+function" class="Z3988"></span></li></ul> </div> <ul><li><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFMenezesvan_OorschotVanstone2018" class="citation book cs1">Menezes, Alfred J.; van Oorschot, Paul C.; Vanstone, Scott A. (7 December 2018). <a rel="nofollow" class="external text" href="https://books.google.com/books?id=YyCyDwAAQBAJ&pg=PA33">"Hash functions"</a>. <i>Handbook of Applied Cryptography</i>. CRC Press. pp. 33–. <a href="/wiki/ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <a href="/wiki/Special:BookSources/978-0-429-88132-9" title="Special:BookSources/978-0-429-88132-9"><bdi>978-0-429-88132-9</bdi></a>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=bookitem&rft.atitle=Hash+functions&rft.btitle=Handbook+of+Applied+Cryptography&rft.pages=33-&rft.pub=CRC+Press&rft.date=2018-12-07&rft.isbn=978-0-429-88132-9&rft.aulast=Menezes&rft.aufirst=Alfred+J.&rft.au=van+Oorschot%2C+Paul+C.&rft.au=Vanstone%2C+Scott+A.&rft_id=https%3A%2F%2Fbooks.google.com%2Fbooks%3Fid%3DYyCyDwAAQBAJ%26pg%3DPA33&rfr_id=info%3Asid%2Fen.wikipedia.org%3ACryptographic+hash+function" class="Z3988"></span></li> <li><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFAumasson2017" class="citation book cs1">Aumasson, Jean-Philippe (6 November 2017). <a rel="nofollow" class="external text" href="https://books.google.com/books?id=W1v6DwAAQBAJ"><i>Serious Cryptography: A Practical Introduction to Modern Encryption</i></a>. No Starch Press. <a href="/wiki/ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <a href="/wiki/Special:BookSources/978-1-59327-826-7" title="Special:BookSources/978-1-59327-826-7"><bdi>978-1-59327-826-7</bdi></a>. <a href="/wiki/OCLC_(identifier)" class="mw-redirect" title="OCLC (identifier)">OCLC</a> <a rel="nofollow" class="external text" href="https://search.worldcat.org/oclc/1012843116">1012843116</a>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.btitle=Serious+Cryptography%3A+A+Practical+Introduction+to+Modern+Encryption&rft.pub=No+Starch+Press&rft.date=2017-11-06&rft_id=info%3Aoclcnum%2F1012843116&rft.isbn=978-1-59327-826-7&rft.aulast=Aumasson&rft.aufirst=Jean-Philippe&rft_id=https%3A%2F%2Fbooks.google.com%2Fbooks%3Fid%3DW1v6DwAAQBAJ&rfr_id=info%3Asid%2Fen.wikipedia.org%3ACryptographic+hash+function" class="Z3988"></span></li></ul> <div class="mw-heading mw-heading2"><h2 id="External_links">External links</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Cryptographic_hash_function&action=edit&section=32" title="Edit section: External links"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <ul><li><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFPaarPelzl2009" class="citation book cs1">Paar, Christof; Pelzl, Jan (2009). <a rel="nofollow" class="external text" href="https://archive.today/20121208212741/http://wiki.crypto.rub.de/Buch/movies.php">"11: Hash Functions"</a>. <i>Understanding Cryptography, A Textbook for Students and Practitioners</i>. <a href="/wiki/Springer_Science%2BBusiness_Media" title="Springer Science+Business Media">Springer</a>. Archived from <a rel="nofollow" class="external text" href="http://wiki.crypto.rub.de/Buch/movies.php">the original</a> on 2012-12-08.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=bookitem&rft.atitle=11%3A+Hash+Functions&rft.btitle=Understanding+Cryptography%2C+A+Textbook+for+Students+and+Practitioners&rft.pub=Springer&rft.date=2009&rft.aulast=Paar&rft.aufirst=Christof&rft.au=Pelzl%2C+Jan&rft_id=http%3A%2F%2Fwiki.crypto.rub.de%2FBuch%2Fmovies.php&rfr_id=info%3Asid%2Fen.wikipedia.org%3ACryptographic+hash+function" class="Z3988"></span> (companion web site contains online cryptography course that covers hash functions)</li> <li><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://ehash.iaik.tugraz.at/wiki/The_eHash_Main_Page">"The ECRYPT Hash Function Website"</a>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=The+ECRYPT+Hash+Function+Website&rft_id=http%3A%2F%2Fehash.iaik.tugraz.at%2Fwiki%2FThe_eHash_Main_Page&rfr_id=info%3Asid%2Fen.wikipedia.org%3ACryptographic+hash+function" class="Z3988"></span></li> <li><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFBuldas2011" class="citation web cs1">Buldas, A. (2011). <a rel="nofollow" class="external text" href="https://archive.today/20121206020054/http://www.guardtime.com/educational-series-on-hashes/">"Series of mini-lectures about cryptographic hash functions"</a>. Archived from <a rel="nofollow" class="external text" href="http://www.guardtime.com/educational-series-on-hashes/">the original</a> on 2012-12-06.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Series+of+mini-lectures+about+cryptographic+hash+functions&rft.date=2011&rft.aulast=Buldas&rft.aufirst=A.&rft_id=http%3A%2F%2Fwww.guardtime.com%2Feducational-series-on-hashes%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3ACryptographic+hash+function" class="Z3988"></span></li> <li><a rel="nofollow" class="external text" href="https://github.com/CRPrinzler/HASH-verify">Open source python based application with GUI used to verify downloads.</a></li></ul> <div class="navbox-styles"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1129693374"><style data-mw-deduplicate="TemplateStyles:r1236075235">.mw-parser-output .navbox{box-sizing:border-box;border:1px solid #a2a9b1;width:100%;clear:both;font-size:88%;text-align:center;padding:1px;margin:1em auto 0}.mw-parser-output .navbox .navbox{margin-top:0}.mw-parser-output .navbox+.navbox,.mw-parser-output .navbox+.navbox-styles+.navbox{margin-top:-1px}.mw-parser-output .navbox-inner,.mw-parser-output .navbox-subgroup{width:100%}.mw-parser-output .navbox-group,.mw-parser-output .navbox-title,.mw-parser-output .navbox-abovebelow{padding:0.25em 1em;line-height:1.5em;text-align:center}.mw-parser-output .navbox-group{white-space:nowrap;text-align:right}.mw-parser-output .navbox,.mw-parser-output .navbox-subgroup{background-color:#fdfdfd}.mw-parser-output .navbox-list{line-height:1.5em;border-color:#fdfdfd}.mw-parser-output .navbox-list-with-group{text-align:left;border-left-width:2px;border-left-style:solid}.mw-parser-output tr+tr>.navbox-abovebelow,.mw-parser-output tr+tr>.navbox-group,.mw-parser-output tr+tr>.navbox-image,.mw-parser-output tr+tr>.navbox-list{border-top:2px solid #fdfdfd}.mw-parser-output .navbox-title{background-color:#ccf}.mw-parser-output .navbox-abovebelow,.mw-parser-output .navbox-group,.mw-parser-output .navbox-subgroup .navbox-title{background-color:#ddf}.mw-parser-output .navbox-subgroup .navbox-group,.mw-parser-output .navbox-subgroup .navbox-abovebelow{background-color:#e6e6ff}.mw-parser-output .navbox-even{background-color:#f7f7f7}.mw-parser-output .navbox-odd{background-color:transparent}.mw-parser-output .navbox .hlist td dl,.mw-parser-output .navbox .hlist td ol,.mw-parser-output .navbox .hlist td ul,.mw-parser-output .navbox td.hlist dl,.mw-parser-output .navbox td.hlist ol,.mw-parser-output .navbox td.hlist ul{padding:0.125em 0}.mw-parser-output .navbox .navbar{display:block;font-size:100%}.mw-parser-output .navbox-title .navbar{float:left;text-align:left;margin-right:0.5em}body.skin--responsive .mw-parser-output .navbox-image img{max-width:none!important}@media print{body.ns-0 .mw-parser-output .navbox{display:none!important}}</style><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1129693374"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1239400231"></div><div role="navigation" class="navbox" aria-label="Navbox" style="padding:3px"><table class="nowraplinks hlist navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><td colspan="2" class="navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><td colspan="2" class="navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks hlist mw-collapsible mw-collapsed navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><div class="navbar plainlinks hlist navbar-mini"><ul><li class="nv-view"><a href="/wiki/Template:Cryptography_hash" title="Template:Cryptography hash"><abbr title="View this template">v</abbr></a></li><li class="nv-talk"><a href="/wiki/Template_talk:Cryptography_hash" title="Template talk:Cryptography hash"><abbr title="Discuss this template">t</abbr></a></li><li class="nv-edit"><a href="/wiki/Special:EditPage/Template:Cryptography_hash" title="Special:EditPage/Template:Cryptography hash"><abbr title="Edit this template">e</abbr></a></li></ul></div><div id="Cryptographic_hash_functions_and_message_authentication_codes" style="font-size:114%;margin:0 4em"><a class="mw-selflink selflink">Cryptographic hash functions</a> and <a href="/wiki/Message_authentication_code" title="Message authentication code">message authentication codes</a></div></th></tr><tr><td class="navbox-abovebelow" colspan="2"><div> <ul><li><a href="/wiki/List_of_hash_functions" title="List of hash functions">List</a></li> <li><a href="/wiki/Comparison_of_cryptographic_hash_functions" title="Comparison of cryptographic hash functions">Comparison</a></li> <li><a href="/wiki/Hash_function_security_summary" title="Hash function security summary">Known attacks</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Common functions</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/MD5" title="MD5">MD5</a> (compromised)</li> <li><a href="/wiki/SHA-1" title="SHA-1">SHA-1</a> (compromised)</li> <li><a href="/wiki/SHA-2" title="SHA-2">SHA-2</a></li> <li><a href="/wiki/SHA-3" title="SHA-3">SHA-3</a></li> <li><a href="/wiki/BLAKE_(hash_function)#BLAKE2" title="BLAKE (hash function)">BLAKE2</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/NIST_hash_function_competition" title="NIST hash function competition">SHA-3 finalists</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/BLAKE_(hash_function)" title="BLAKE (hash function)">BLAKE</a></li> <li><a href="/wiki/Gr%C3%B8stl" title="Grøstl">Grøstl</a></li> <li><a href="/wiki/JH_(hash_function)" title="JH (hash function)">JH</a></li> <li><a href="/wiki/Skein_(hash_function)" title="Skein (hash function)">Skein</a></li> <li><a href="/wiki/SHA-3" title="SHA-3">Keccak</a> (winner)</li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Other functions</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/BLAKE3" class="mw-redirect" title="BLAKE3">BLAKE3</a></li> <li><a href="/wiki/CubeHash" title="CubeHash">CubeHash</a></li> <li><a href="/wiki/Elliptic_curve_only_hash" title="Elliptic curve only hash">ECOH</a></li> <li><a href="/wiki/Fast_syndrome-based_hash" title="Fast syndrome-based hash">FSB</a></li> <li><a href="/wiki/Fugue_(hash_function)" title="Fugue (hash function)">Fugue</a></li> <li><a href="/wiki/GOST_(hash_function)" title="GOST (hash function)">GOST</a></li> <li><a href="/wiki/HAS-160" title="HAS-160">HAS-160</a></li> <li><a href="/wiki/HAVAL" title="HAVAL">HAVAL</a></li> <li><a href="/wiki/Kupyna" title="Kupyna">Kupyna</a></li> <li><a href="/wiki/LSH_(hash_function)" title="LSH (hash function)">LSH</a></li> <li><a href="/wiki/Lane_(hash_function)" title="Lane (hash function)">Lane</a></li> <li><a href="/wiki/MASH-1" title="MASH-1">MASH-1</a></li> <li><a href="/wiki/MASH-1#MASH2" title="MASH-1">MASH-2</a></li> <li><a href="/wiki/MD2_(hash_function)" title="MD2 (hash function)">MD2</a></li> <li><a href="/wiki/MD4" title="MD4">MD4</a></li> <li><a href="/wiki/MD6" title="MD6">MD6</a></li> <li><a href="/wiki/MDC-2" title="MDC-2">MDC-2</a></li> <li><a href="/wiki/N-hash" title="N-hash">N-hash</a></li> <li><a href="/wiki/RIPEMD" title="RIPEMD">RIPEMD</a></li> <li><a href="/wiki/RadioGat%C3%BAn" title="RadioGatún">RadioGatún</a></li> <li><a href="/wiki/SIMD_(hash_function)" title="SIMD (hash function)">SIMD</a></li> <li><a href="/wiki/SM3_(hash_function)" title="SM3 (hash function)">SM3</a></li> <li><a href="/wiki/SWIFFT" title="SWIFFT">SWIFFT</a></li> <li><a href="/wiki/Shabal" title="Shabal">Shabal</a></li> <li><a href="/wiki/Snefru" title="Snefru">Snefru</a></li> <li><a href="/wiki/Streebog" title="Streebog">Streebog</a></li> <li><a href="/wiki/Tiger_(hash_function)" title="Tiger (hash function)">Tiger</a></li> <li><a href="/wiki/Very_smooth_hash" title="Very smooth hash">VSH</a></li> <li><a href="/wiki/Whirlpool_(hash_function)" title="Whirlpool (hash function)">Whirlpool</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Password hashing/<br /><a href="/wiki/Key_stretching" title="Key stretching">key stretching</a> functions</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Argon2" title="Argon2">Argon2</a></li> <li><a href="/wiki/Balloon_hashing" title="Balloon hashing">Balloon</a></li> <li><a href="/wiki/Bcrypt" title="Bcrypt">bcrypt</a></li> <li><a href="/wiki/Catena_(cryptography)" class="mw-redirect" title="Catena (cryptography)">Catena</a></li> <li><a href="/wiki/Crypt_(C)" title="Crypt (C)">crypt</a></li> <li><a href="/wiki/LAN_Manager#LM_hash_details" title="LAN Manager">LM hash</a></li> <li><a href="/wiki/Lyra2" title="Lyra2">Lyra2</a></li> <li><a href="/wiki/Makwa_(cryptography)" class="mw-redirect" title="Makwa (cryptography)">Makwa</a></li> <li><a href="/wiki/PBKDF2" title="PBKDF2">PBKDF2</a></li> <li><a href="/wiki/Scrypt" title="Scrypt">scrypt</a></li> <li><a href="/wiki/Yescrypt" title="Yescrypt">yescrypt</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">General purpose<br /><a href="/wiki/Key_derivation_function" title="Key derivation function">key derivation functions</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/HKDF" title="HKDF">HKDF</a></li> <li>KDF1/KDF2</li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Message_authentication_code" title="Message authentication code">MAC functions</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/CBC-MAC" title="CBC-MAC">CBC-MAC</a></li> <li><a href="/wiki/Data_Authentication_Algorithm" title="Data Authentication Algorithm">DAA</a></li> <li><a href="/wiki/Galois_Message_Authentication_Code" class="mw-redirect" title="Galois Message Authentication Code">GMAC</a></li> <li><a href="/wiki/HMAC" title="HMAC">HMAC</a></li> <li><a href="/wiki/NMAC" class="mw-redirect" title="NMAC">NMAC</a></li> <li><a href="/wiki/One-key_MAC" title="One-key MAC">OMAC</a>/<a href="/wiki/One-key_MAC" title="One-key MAC">CMAC</a></li> <li><a href="/wiki/PMAC_(cryptography)" title="PMAC (cryptography)">PMAC</a></li> <li><a href="/wiki/Poly1305" title="Poly1305">Poly1305</a></li> <li><a href="/wiki/SipHash" title="SipHash">SipHash</a></li> <li><a href="/wiki/UMAC_(cryptography)" title="UMAC (cryptography)">UMAC</a></li> <li><a href="/wiki/VMAC" title="VMAC">VMAC</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Authenticated_encryption" title="Authenticated encryption">Authenticated<br />encryption</a> modes</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/CCM_mode" title="CCM mode">CCM</a></li> <li><a href="/wiki/ChaCha20-Poly1305" title="ChaCha20-Poly1305">ChaCha20-Poly1305</a></li> <li><a href="/wiki/CWC_mode" title="CWC mode">CWC</a></li> <li><a href="/wiki/EAX_mode" title="EAX mode">EAX</a></li> <li><a href="/wiki/Galois/Counter_Mode" title="Galois/Counter Mode">GCM</a></li> <li><a href="/wiki/IAPM_(mode)" title="IAPM (mode)">IAPM</a></li> <li><a href="/wiki/OCB_mode" title="OCB mode">OCB</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Attacks</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Collision_attack" title="Collision attack">Collision attack</a></li> <li><a href="/wiki/Preimage_attack" title="Preimage attack">Preimage attack</a></li> <li><a href="/wiki/Birthday_attack" title="Birthday attack">Birthday attack</a></li> <li><a href="/wiki/Brute-force_attack" title="Brute-force attack">Brute-force attack</a></li> <li><a href="/wiki/Rainbow_table" title="Rainbow table">Rainbow table</a></li> <li><a href="/wiki/Side-channel_attack" title="Side-channel attack">Side-channel attack</a></li> <li><a href="/wiki/Length_extension_attack" title="Length extension attack">Length extension attack</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Design</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Avalanche_effect" title="Avalanche effect">Avalanche effect</a></li> <li><a href="/wiki/Hash_collision" title="Hash collision">Hash collision</a></li> <li><a href="/wiki/Merkle%E2%80%93Damg%C3%A5rd_construction" title="Merkle–Damgård construction">Merkle–Damgård construction</a></li> <li><a href="/wiki/Sponge_function" title="Sponge function">Sponge function</a></li> <li><a href="/wiki/HAIFA_construction" title="HAIFA construction">HAIFA construction</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Standardization</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/CAESAR_Competition" title="CAESAR Competition">CAESAR Competition</a></li> <li><a href="/wiki/CRYPTREC" title="CRYPTREC">CRYPTREC</a></li> <li><a href="/wiki/NESSIE" title="NESSIE">NESSIE</a></li> <li><a href="/wiki/NIST_hash_function_competition" title="NIST hash function competition">NIST hash function competition</a></li> <li><a href="/wiki/Password_Hashing_Competition" title="Password Hashing Competition">Password Hashing Competition</a></li> <li><a href="/wiki/NSA_Suite_B_Cryptography" title="NSA Suite B Cryptography">NSA Suite B</a></li> <li><a href="/wiki/Commercial_National_Security_Algorithm_Suite" title="Commercial National Security Algorithm Suite">CNSA</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Utilization</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Post-quantum_cryptography#Hash-based_cryptography" title="Post-quantum cryptography">Hash-based cryptography</a></li> <li><a href="/wiki/Merkle_tree" title="Merkle tree">Merkle tree</a></li> <li><a href="/wiki/Message_authentication" title="Message authentication">Message authentication</a></li> <li><a href="/wiki/Proof_of_work" title="Proof of work">Proof of work</a></li> <li><a href="/wiki/Salt_(cryptography)" title="Salt (cryptography)">Salt</a></li> <li><a href="/wiki/Pepper_(cryptography)" title="Pepper (cryptography)">Pepper</a></li></ul> </div></td></tr></tbody></table><div></div></td></tr></tbody></table><div></div></td></tr><tr><td colspan="2" class="navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks mw-collapsible mw-collapsed navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><div class="navbar plainlinks hlist navbar-mini"><ul><li class="nv-view"><a href="/wiki/Template:Cryptography_navbox" title="Template:Cryptography navbox"><abbr title="View this template">v</abbr></a></li><li class="nv-talk"><a href="/wiki/Template_talk:Cryptography_navbox" title="Template talk:Cryptography navbox"><abbr title="Discuss this template">t</abbr></a></li><li class="nv-edit"><a href="/wiki/Special:EditPage/Template:Cryptography_navbox" title="Special:EditPage/Template:Cryptography navbox"><abbr title="Edit this template">e</abbr></a></li></ul></div><div id="Cryptography" style="font-size:114%;margin:0 4em"><a href="/wiki/Cryptography" title="Cryptography">Cryptography</a></div></th></tr><tr><th scope="row" class="navbox-group" style="width:1%">General</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/History_of_cryptography" title="History of cryptography">History of cryptography</a></li> <li><a href="/wiki/Outline_of_cryptography" title="Outline of cryptography">Outline of cryptography</a></li> <li><a href="/wiki/Classical_cipher" title="Classical cipher">Classical cipher</a></li> <li><a href="/wiki/Cryptographic_protocol" title="Cryptographic protocol">Cryptographic protocol</a> <ul><li><a href="/wiki/Authentication_protocol" title="Authentication protocol">Authentication protocol</a></li></ul></li> <li><a href="/wiki/Cryptographic_primitive" title="Cryptographic primitive">Cryptographic primitive</a></li> <li><a href="/wiki/Cryptanalysis" title="Cryptanalysis">Cryptanalysis</a></li> <li><a href="/wiki/Cryptocurrency" title="Cryptocurrency">Cryptocurrency</a></li> <li><a href="/wiki/Cryptosystem" title="Cryptosystem">Cryptosystem</a></li> <li><a href="/wiki/Cryptographic_nonce" title="Cryptographic nonce">Cryptographic nonce</a></li> <li><a href="/wiki/Cryptovirology" title="Cryptovirology">Cryptovirology</a></li> <li><a href="/wiki/Hash_function" title="Hash function">Hash function</a> <ul><li><a class="mw-selflink selflink">Cryptographic hash function</a></li> <li><a href="/wiki/Key_derivation_function" title="Key derivation function">Key derivation function</a></li> <li><a href="/wiki/Secure_Hash_Algorithms" title="Secure Hash Algorithms">Secure Hash Algorithms</a></li></ul></li> <li><a href="/wiki/Digital_signature" title="Digital signature">Digital signature</a></li> <li><a href="/wiki/Kleptography" title="Kleptography">Kleptography</a></li> <li><a href="/wiki/Key_(cryptography)" title="Key (cryptography)">Key (cryptography)</a></li> <li><a href="/wiki/Key_exchange" title="Key exchange">Key exchange</a></li> <li><a href="/wiki/Key_generator" title="Key generator">Key generator</a></li> <li><a href="/wiki/Key_schedule" title="Key schedule">Key schedule</a></li> <li><a href="/wiki/Key_stretching" title="Key stretching">Key stretching</a></li> <li><a href="/wiki/Keygen" title="Keygen">Keygen</a></li> <li><a href="/wiki/Template:Cryptography_machines" title="Template:Cryptography machines">Machines</a></li> <li><a href="/wiki/Cryptojacking_malware" class="mw-redirect" title="Cryptojacking malware">Cryptojacking malware</a></li> <li><a href="/wiki/Ransomware" title="Ransomware">Ransomware</a></li> <li><a href="/wiki/Random_number_generation" title="Random number generation">Random number generation</a> <ul><li><a href="/wiki/Cryptographically_secure_pseudorandom_number_generator" title="Cryptographically secure pseudorandom number generator">Cryptographically secure pseudorandom number generator</a> (CSPRNG)</li></ul></li> <li><a href="/wiki/Pseudorandom_noise" title="Pseudorandom noise">Pseudorandom noise</a> (PRN)</li> <li><a href="/wiki/Secure_channel" title="Secure channel">Secure channel</a></li> <li><a href="/wiki/Insecure_channel" class="mw-redirect" title="Insecure channel">Insecure channel</a></li> <li><a href="/wiki/Subliminal_channel" title="Subliminal channel">Subliminal channel</a></li> <li><a href="/wiki/Encryption" title="Encryption">Encryption</a></li> <li><a href="/wiki/Decryption" class="mw-redirect" title="Decryption">Decryption</a></li> <li><a href="/wiki/End-to-end_encryption" title="End-to-end encryption">End-to-end encryption</a></li> <li><a href="/wiki/Harvest_now,_decrypt_later" title="Harvest now, decrypt later">Harvest now, decrypt later</a></li> <li><a href="/wiki/Information-theoretic_security" title="Information-theoretic security">Information-theoretic security</a></li> <li><a href="/wiki/Plaintext" title="Plaintext">Plaintext</a></li> <li><a href="/wiki/Codetext" class="mw-redirect" title="Codetext">Codetext</a></li> <li><a href="/wiki/Ciphertext" title="Ciphertext">Ciphertext</a></li> <li><a href="/wiki/Shared_secret" title="Shared secret">Shared secret</a></li> <li><a href="/wiki/Trapdoor_function" title="Trapdoor function">Trapdoor function</a></li> <li><a href="/wiki/Trusted_timestamping" title="Trusted timestamping">Trusted timestamping</a></li> <li><a href="/wiki/Key-based_routing" title="Key-based routing">Key-based routing</a></li> <li><a href="/wiki/Onion_routing" title="Onion routing">Onion routing</a></li> <li><a href="/wiki/Garlic_routing" title="Garlic routing">Garlic routing</a></li> <li><a href="/wiki/Kademlia" title="Kademlia">Kademlia</a></li> <li><a href="/wiki/Mix_network" title="Mix network">Mix network</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Mathematics</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a class="mw-selflink selflink">Cryptographic hash function</a></li> <li><a href="/wiki/Block_cipher" title="Block cipher">Block cipher</a></li> <li><a href="/wiki/Stream_cipher" title="Stream cipher">Stream cipher</a></li> <li><a href="/wiki/Symmetric-key_algorithm" title="Symmetric-key algorithm">Symmetric-key algorithm</a></li> <li><a href="/wiki/Authenticated_encryption" title="Authenticated encryption">Authenticated encryption</a></li> <li><a href="/wiki/Public-key_cryptography" title="Public-key cryptography">Public-key cryptography</a></li> <li><a href="/wiki/Quantum_key_distribution" title="Quantum key distribution">Quantum key distribution</a></li> <li><a href="/wiki/Quantum_cryptography" title="Quantum cryptography">Quantum cryptography</a></li> <li><a href="/wiki/Post-quantum_cryptography" title="Post-quantum cryptography">Post-quantum cryptography</a></li> <li><a href="/wiki/Message_authentication_code" title="Message authentication code">Message authentication code</a></li> <li><a href="/wiki/Cryptographically_secure_pseudorandom_number_generator" title="Cryptographically secure pseudorandom number generator">Random numbers</a></li> <li><a href="/wiki/Steganography" title="Steganography">Steganography</a></li></ul> </div></td></tr><tr><td class="navbox-abovebelow" colspan="2"><div> <ul><li><span class="noviewer" typeof="mw:File"><span title="Category"><img alt="" src="//upload.wikimedia.org/wikipedia/en/thumb/9/96/Symbol_category_class.svg/16px-Symbol_category_class.svg.png" decoding="async" width="16" height="16" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/9/96/Symbol_category_class.svg/23px-Symbol_category_class.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/9/96/Symbol_category_class.svg/31px-Symbol_category_class.svg.png 2x" data-file-width="180" data-file-height="185" /></span></span> <a href="/wiki/Category:Cryptography" title="Category:Cryptography">Category</a></li></ul> </div></td></tr></tbody></table><div></div></td></tr></tbody></table></div> <div class="navbox-styles"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1129693374"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1236075235"></div><div role="navigation" class="navbox" aria-labelledby="Cryptocurrencies" style="padding:3px"><table class="nowraplinks hlist mw-collapsible mw-collapsed navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1129693374"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1239400231"><div class="navbar plainlinks hlist navbar-mini"><ul><li class="nv-view"><a href="/wiki/Template:Cryptocurrencies" title="Template:Cryptocurrencies"><abbr title="View this template">v</abbr></a></li><li class="nv-talk"><a href="/wiki/Template_talk:Cryptocurrencies" title="Template talk:Cryptocurrencies"><abbr title="Discuss this template">t</abbr></a></li><li class="nv-edit"><a href="/wiki/Special:EditPage/Template:Cryptocurrencies" title="Special:EditPage/Template:Cryptocurrencies"><abbr title="Edit this template">e</abbr></a></li></ul></div><div id="Cryptocurrencies" style="font-size:114%;margin:0 4em"><a href="/wiki/Cryptocurrency" title="Cryptocurrency">Cryptocurrencies</a></div></th></tr><tr><th scope="row" class="navbox-group" style="width:1%">Technology</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Blockchain" title="Blockchain">Blockchain</a></li> <li><a href="/wiki/Cryptocurrency_tumbler" title="Cryptocurrency tumbler">Cryptocurrency tumbler</a></li> <li><a href="/wiki/Cryptocurrency_wallet" title="Cryptocurrency wallet">Cryptocurrency wallet</a></li> <li><a class="mw-selflink selflink">Cryptographic hash function</a></li> <li><a href="/wiki/Decentralized_finance#Decentralized_exchanges" title="Decentralized finance">Decentralized exchange</a></li> <li><a href="/wiki/Decentralized_finance" title="Decentralized finance">Decentralized finance</a></li> <li><a href="/wiki/Distributed_ledger" title="Distributed ledger">Distributed ledger</a></li> <li><a href="/wiki/Fork_(blockchain)" title="Fork (blockchain)">Fork</a></li> <li><a href="/wiki/Lightning_Network" title="Lightning Network">Lightning Network</a></li> <li><a href="/wiki/MetaMask" title="MetaMask">MetaMask</a></li> <li><a href="/wiki/Non-fungible_token" title="Non-fungible token">Non-fungible token</a></li> <li><a href="/wiki/Smart_contract" title="Smart contract">Smart contract</a></li> <li><a href="/wiki/Web3" title="Web3">Web3</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Consensus_(computer_science)" title="Consensus (computer science)">Consensus</a> mechanisms</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Proof_of_authority" title="Proof of authority">Proof of authority</a></li> <li><a href="/wiki/Proof_of_space" title="Proof of space">Proof of space</a></li> <li><a href="/wiki/Proof_of_stake" title="Proof of stake">Proof of stake</a></li> <li><a href="/wiki/Proof_of_work" title="Proof of work">Proof of work</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Proof_of_work" title="Proof of work">Proof of work</a> currencies</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/SHA-2" title="SHA-2">SHA-256</a>-based</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Bitcoin" title="Bitcoin">Bitcoin</a></li> <li><a href="/wiki/Bitcoin_Cash" title="Bitcoin Cash">Bitcoin Cash</a></li> <li><a href="/wiki/Counterparty_(platform)" title="Counterparty (platform)">Counterparty</a></li> <li><a href="/wiki/LBRY" title="LBRY">LBRY</a></li> <li><a href="/wiki/MazaCoin" title="MazaCoin">MazaCoin</a></li> <li><a href="/wiki/Namecoin" title="Namecoin">Namecoin</a></li> <li><a href="/wiki/Peercoin" title="Peercoin">Peercoin</a></li> <li><a href="/wiki/Titcoin" title="Titcoin">Titcoin</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Ethereum" title="Ethereum">Ethash</a>-based</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Ethereum" title="Ethereum">Ethereum</a> (1.0)</li> <li><a href="/wiki/Ethereum_Classic" title="Ethereum Classic">Ethereum Classic</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Scrypt" title="Scrypt">Scrypt</a>-based</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Auroracoin" title="Auroracoin">Auroracoin</a></li> <li><a href="/wiki/Bitconnect" title="Bitconnect">Bitconnect</a></li> <li><a href="/wiki/Coinye" title="Coinye">Coinye</a></li> <li><a href="/wiki/Dogecoin" title="Dogecoin">Dogecoin</a></li> <li><a href="/wiki/Litecoin" title="Litecoin">Litecoin</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Equihash" title="Equihash">Equihash</a>-based</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Bitcoin_Gold" title="Bitcoin Gold">Bitcoin Gold</a></li> <li><a href="/wiki/Zcash" title="Zcash">Zcash</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">RandomX-based</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Monero" title="Monero">Monero</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Dash_(cryptocurrency)#X11" title="Dash (cryptocurrency)">X11</a>-based</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Dash_(cryptocurrency)" title="Dash (cryptocurrency)">Dash</a></li> <li><a href="/wiki/Petro_(cryptocurrency)" class="mw-redirect" title="Petro (cryptocurrency)">Petro</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Other</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/AmbaCoin" title="AmbaCoin">AmbaCoin</a></li> <li><a href="/wiki/Firo_(cryptocurrency)" title="Firo (cryptocurrency)">Firo</a></li> <li><a href="/wiki/IOTA_(technology)" title="IOTA (technology)">IOTA</a></li> <li><a href="/wiki/Nervos_Network" title="Nervos Network">Nervos Network</a></li> <li><a href="/wiki/Primecoin" title="Primecoin">Primecoin</a></li> <li><a href="/wiki/Verge_(cryptocurrency)" title="Verge (cryptocurrency)">Verge</a></li> <li><a href="/wiki/Vertcoin" title="Vertcoin">Vertcoin</a></li></ul> </div></td></tr></tbody></table><div></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Proof_of_stake" title="Proof of stake">Proof of stake</a> currencies</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Algorand" title="Algorand">Algorand</a></li> <li><a href="/wiki/Avalanche_(blockchain_platform)" title="Avalanche (blockchain platform)">Avalanche</a></li> <li><a href="/wiki/Cardano_(blockchain_platform)" title="Cardano (blockchain platform)">Cardano</a></li> <li><a href="/wiki/EOS.IO" title="EOS.IO">EOS.IO</a></li> <li><a href="/wiki/Ethereum" title="Ethereum">Ethereum</a> (2.0)</li> <li><a href="/wiki/Gridcoin" title="Gridcoin">Gridcoin</a></li> <li><a href="/wiki/Injective_(blockchain)" title="Injective (blockchain)">Injective</a></li> <li><a href="/wiki/Kin_(cryptocurrency)" class="mw-redirect" title="Kin (cryptocurrency)">Kin</a></li> <li><a href="/wiki/Nxt" title="Nxt">Nxt</a></li> <li><a href="/wiki/Peercoin" title="Peercoin">Peercoin</a></li> <li><a href="/wiki/Polkadot_(cryptocurrency)" class="mw-redirect" title="Polkadot (cryptocurrency)">Polkadot</a></li> <li><a href="/wiki/Solana_(blockchain_platform)" title="Solana (blockchain platform)">Solana</a></li> <li><a href="/wiki/Steemit" title="Steemit">Steem</a></li> <li><a href="/wiki/Tezos" title="Tezos">Tezos</a></li> <li><a href="/wiki/The_Open_Network" title="The Open Network">TON</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/ERC-20" class="mw-redirect" title="ERC-20">ERC-20</a> tokens</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Augur_(software)" title="Augur (software)">Augur</a></li> <li><a href="/wiki/Aventus_Protocol" class="mw-redirect" title="Aventus Protocol">Aventus</a></li> <li><a href="/wiki/Brave_(web_browser)#Basic_Attention_Token" title="Brave (web browser)">Basic Attention Token</a></li> <li><a href="/wiki/Chainlink_(blockchain)" title="Chainlink (blockchain)">Chainlink</a></li> <li><a href="/wiki/Kin_(cryptocurrency)" class="mw-redirect" title="Kin (cryptocurrency)">Kin</a></li> <li><a href="/wiki/KodakCoin" title="KodakCoin">KodakCoin</a></li> <li><a href="/wiki/Minds_(social_network)" title="Minds (social network)">Minds</a></li> <li><a href="/wiki/Polygon_(blockchain)" title="Polygon (blockchain)">Polygon</a></li> <li><a href="/wiki/Shiba_Inu_(cryptocurrency)" title="Shiba Inu (cryptocurrency)">Shiba Inu</a></li> <li><a href="/wiki/The_DAO_(organization)" class="mw-redirect" title="The DAO (organization)">The DAO</a></li> <li><a href="/wiki/Tron_(cryptocurrency)" class="mw-redirect" title="Tron (cryptocurrency)">TRON</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Stablecoin" title="Stablecoin">Stablecoins</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Dai_(cryptocurrency)" title="Dai (cryptocurrency)">Dai</a></li> <li><a href="/wiki/Diem_(digital_currency)" title="Diem (digital currency)">Diem</a></li> <li><a href="/wiki/Paxos_Trust_Company#Paxos_Standard" title="Paxos Trust Company">Pax</a></li> <li><a href="/wiki/Terra_(blockchain)" title="Terra (blockchain)">Terra</a></li> <li><a href="/wiki/Tether_(cryptocurrency)" title="Tether (cryptocurrency)">Tether</a></li> <li><a href="/wiki/USD_Coin" title="USD Coin">USD Coin</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Other currencies</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Chia_(cryptocurrency)" title="Chia (cryptocurrency)">Chia</a></li> <li><a href="/wiki/Filecoin" title="Filecoin">Filecoin</a></li> <li><a href="/wiki/Hashgraph" title="Hashgraph">HBAR (Hashgraph)</a></li> <li><a href="/wiki/Helium_Network" title="Helium Network">Helium</a></li> <li><a href="/wiki/Terra_(blockchain)" title="Terra (blockchain)">Luna</a></li> <li><a href="/wiki/MobileCoin" title="MobileCoin">MobileCoin</a></li> <li><a href="/wiki/Nano_(cryptocurrency)" title="Nano (cryptocurrency)">Nano</a></li> <li><a href="/wiki/NEO_(cryptocurrency)" title="NEO (cryptocurrency)">NEO</a></li> <li><a href="/wiki/SafeMoon" title="SafeMoon">SafeMoon</a></li> <li><a href="/wiki/Stellar_(payment_network)" title="Stellar (payment network)">Stellar</a></li> <li><a href="/wiki/WhopperCoin" title="WhopperCoin">WhopperCoin</a></li> <li><a href="/wiki/XRP_Ledger" title="XRP Ledger">XRP Ledger</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/List_of_cryptocurrencies#Inactive_currencies" title="List of cryptocurrencies">Inactive currencies</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Bitconnect" title="Bitconnect">BitConnect</a></li> <li><a href="/wiki/Coinye" title="Coinye">Coinye</a></li> <li><a href="/wiki/KodakCoin" title="KodakCoin">KodakCoin</a></li> <li><a href="/wiki/OneCoin" title="OneCoin">OneCoin</a></li> <li><a href="/wiki/Petro_(cryptocurrency)" class="mw-redirect" title="Petro (cryptocurrency)">Petro</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Crypto service companies</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Hyperledger" title="Hyperledger">Hyperledger</a></li> <li><a href="/wiki/IQ.Wiki" class="mw-redirect" title="IQ.Wiki">IQ.Wiki</a></li> <li><a href="/wiki/Quahl" title="Quahl">Initiative Q</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Related topics</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Airdrop_(cryptocurrency)" title="Airdrop (cryptocurrency)">Airdrop</a></li> <li><a href="/wiki/BitLicense" title="BitLicense">BitLicense</a></li> <li><a href="/wiki/Blockchain_game" title="Blockchain game">Blockchain game</a></li> <li><a href="/wiki/Complementary_currency" title="Complementary currency">Complementary currency</a></li> <li><a href="/wiki/Crypto-anarchism" class="mw-redirect" title="Crypto-anarchism">Crypto-anarchism</a></li> <li><a href="/wiki/Cryptocurrency_bubble" title="Cryptocurrency bubble">Cryptocurrency bubble</a></li> <li><a href="/wiki/Cryptocurrency_in_Nigeria" title="Cryptocurrency in Nigeria">Cryptocurrency in Nigeria</a></li> <li><a href="/wiki/Category:Cryptocurrency_scams" title="Category:Cryptocurrency scams">Cryptocurrency scams</a></li> <li><a href="/wiki/Digital_currency" title="Digital currency">Digital currency</a></li> <li><a href="/wiki/Decentralized_autonomous_organization" title="Decentralized autonomous organization">Decentralized autonomous organization</a></li> <li><a href="/wiki/Decentralized_application" title="Decentralized application">Decentralized application</a></li> <li><a href="/wiki/Distributed_ledger_technology_law" title="Distributed ledger technology law">Distributed ledger technology law</a></li> <li><a href="/wiki/Double-spending" title="Double-spending">Double-spending</a></li> <li><a href="/wiki/Environmental_impact_of_cryptocurrencies" class="mw-redirect" title="Environmental impact of cryptocurrencies">Environmental impact</a></li> <li><a href="/wiki/Initial_coin_offering" title="Initial coin offering">Initial coin offering</a></li> <li><a href="/wiki/Initial_exchange_offering" title="Initial exchange offering">Initial exchange offering</a></li> <li><a href="/wiki/List_of_cryptocurrencies" title="List of cryptocurrencies">List of cryptocurrencies</a></li> <li><a href="/wiki/Token_money" title="Token money">Token money</a></li> <li><a href="/wiki/Virtual_currency" title="Virtual currency">Virtual currency</a></li></ul> </div></td></tr><tr><td class="navbox-abovebelow" colspan="2"><div> <ul><li><span class="noviewer" typeof="mw:File"><span title="Category"><img alt="" src="//upload.wikimedia.org/wikipedia/en/thumb/9/96/Symbol_category_class.svg/16px-Symbol_category_class.svg.png" decoding="async" width="16" height="16" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/9/96/Symbol_category_class.svg/23px-Symbol_category_class.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/9/96/Symbol_category_class.svg/31px-Symbol_category_class.svg.png 2x" data-file-width="180" data-file-height="185" /></span></span> <b><a href="/wiki/Category:Cryptocurrencies" title="Category:Cryptocurrencies">Category</a></b></li> <li><span class="noviewer" typeof="mw:File"><span title="Commons page"><img alt="" src="//upload.wikimedia.org/wikipedia/en/thumb/4/4a/Commons-logo.svg/12px-Commons-logo.svg.png" decoding="async" width="12" height="16" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/4/4a/Commons-logo.svg/18px-Commons-logo.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/4/4a/Commons-logo.svg/24px-Commons-logo.svg.png 2x" data-file-width="1024" data-file-height="1376" /></span></span> <b><a href="https://commons.wikimedia.org/wiki/Category:Cryptocurrency" class="extiw" title="commons:Category:Cryptocurrency">Commons</a></b></li> <li><span class="noviewer" typeof="mw:File"><span title="List-Class article"><img alt="" src="//upload.wikimedia.org/wikipedia/en/thumb/d/db/Symbol_list_class.svg/16px-Symbol_list_class.svg.png" decoding="async" width="16" height="16" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/d/db/Symbol_list_class.svg/23px-Symbol_list_class.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/d/db/Symbol_list_class.svg/31px-Symbol_list_class.svg.png 2x" data-file-width="180" data-file-height="185" /></span></span> <b><a href="/wiki/List_of_cryptocurrencies" title="List of cryptocurrencies">List</a></b></li></ul> </div></td></tr></tbody></table></div> <div class="navbox-styles"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1129693374"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1236075235"></div><div role="navigation" class="navbox" aria-labelledby="Cryptographic_software" style="padding:3px"><table class="nowraplinks hlist mw-collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1129693374"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1239400231"><div class="navbar plainlinks hlist navbar-mini"><ul><li class="nv-view"><a href="/wiki/Template:Cryptographic_software" title="Template:Cryptographic software"><abbr title="View this template">v</abbr></a></li><li class="nv-talk"><a href="/wiki/Template_talk:Cryptographic_software" title="Template talk:Cryptographic software"><abbr title="Discuss this template">t</abbr></a></li><li class="nv-edit"><a href="/wiki/Special:EditPage/Template:Cryptographic_software" title="Special:EditPage/Template:Cryptographic software"><abbr title="Edit this template">e</abbr></a></li></ul></div><div id="Cryptographic_software" style="font-size:114%;margin:0 4em"><a href="/wiki/Encryption_software" title="Encryption software">Cryptographic software</a></div></th></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Email_client" title="Email client">Email clients</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Apple_Mail" title="Apple Mail">Apple Mail</a></li> <li><a href="/wiki/Autocrypt" title="Autocrypt">Autocrypt</a></li> <li><a href="/wiki/Claws_Mail" title="Claws Mail">Claws Mail</a></li> <li><a href="/wiki/Enigmail" title="Enigmail">Enigmail</a></li> <li><a href="/wiki/GNU_Privacy_Guard" title="GNU Privacy Guard">GPG</a> (<a href="/wiki/Gpg4win" title="Gpg4win">Gpg4win</a>)</li> <li><a href="/wiki/Kontact" title="Kontact">Kontact</a></li> <li><a href="/wiki/Microsoft_Outlook" title="Microsoft Outlook">Outlook</a></li> <li><a href="/wiki/Pretty_Easy_privacy" title="Pretty Easy privacy">p≡p</a></li> <li><a href="/wiki/Pretty_Good_Privacy" title="Pretty Good Privacy">PGP</a></li> <li><a href="/wiki/Sylpheed" title="Sylpheed">Sylpheed</a></li> <li><a href="/wiki/Mozilla_Thunderbird" title="Mozilla Thunderbird">Thunderbird</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Secure_communication" title="Secure communication">Secure<br />communication</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Off-the-Record_Messaging" class="mw-redirect" title="Off-the-Record Messaging">OTR</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Adium" title="Adium">Adium</a></li> <li><a href="/wiki/BitlBee" title="BitlBee">BitlBee</a></li> <li><a href="/wiki/Centericq" title="Centericq">Centericq</a></li> <li><a href="/wiki/ChatSecure" title="ChatSecure">ChatSecure</a></li> <li><a href="/wiki/Climm" title="Climm">climm</a></li> <li><a href="/wiki/Jitsi" title="Jitsi">Jitsi</a></li> <li><a href="/wiki/Kopete" title="Kopete">Kopete</a></li> <li><a href="/wiki/Profanity_(instant_messaging_client)" title="Profanity (instant messaging client)">Profanity</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Secure_Shell" title="Secure Shell">SSH</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Dropbear_(software)" title="Dropbear (software)">Dropbear</a></li> <li><a href="/wiki/Lsh" title="Lsh">lsh</a></li> <li><a href="/wiki/OpenSSH" title="OpenSSH">OpenSSH</a></li> <li><a href="/wiki/PuTTY" title="PuTTY">PuTTY</a></li> <li><a href="/wiki/SecureCRT" title="SecureCRT">SecureCRT</a></li> <li><a href="/wiki/WinSCP" title="WinSCP">WinSCP</a></li> <li><a href="/wiki/WolfSSH" title="WolfSSH">wolfSSH</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Transport_Layer_Security" title="Transport Layer Security">TLS & SSL</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/BBM_Enterprise" title="BBM Enterprise">BBM Enterprise</a></li> <li><a href="/wiki/Bouncy_Castle_(cryptography)" title="Bouncy Castle (cryptography)">Bouncy Castle</a></li> <li><a href="/wiki/OpenSSL#BoringSSL" title="OpenSSL">BoringSSL</a></li> <li><a href="/wiki/Botan_(programming_library)" title="Botan (programming library)">Botan</a></li> <li><a href="/wiki/Cryptlib" title="Cryptlib">cryptlib</a></li> <li><a href="/wiki/GnuTLS" title="GnuTLS">GnuTLS</a></li> <li><a href="/wiki/Java_Secure_Socket_Extension" title="Java Secure Socket Extension">JSSE</a></li> <li><a href="/wiki/LibreSSL" title="LibreSSL">LibreSSL</a></li> <li><a href="/wiki/MatrixSSL" title="MatrixSSL">MatrixSSL</a></li> <li><a href="/wiki/Network_Security_Services" title="Network Security Services">NSS</a></li> <li><a href="/wiki/OpenSSL" title="OpenSSL">OpenSSL</a></li> <li><a href="/wiki/Mbed_TLS" title="Mbed TLS">mbed TLS</a></li> <li><a href="/wiki/BSAFE" title="BSAFE">BSAFE</a></li> <li><a href="/wiki/Security_Support_Provider_Interface" title="Security Support Provider Interface">SChannel</a></li> <li><a href="/wiki/SSLeay" title="SSLeay">SSLeay</a></li> <li><a href="/wiki/Stunnel" title="Stunnel">stunnel</a></li> <li><a href="/wiki/TeamNote" title="TeamNote">TeamNote</a></li> <li><a href="/wiki/WolfSSL" title="WolfSSL">wolfSSL</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Virtual_private_network" title="Virtual private network">VPN</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Check_Point_VPN-1" class="mw-redirect" title="Check Point VPN-1">Check Point VPN-1</a></li> <li><a href="/wiki/LogMeIn_Hamachi" title="LogMeIn Hamachi">Hamachi</a></li> <li><a href="/wiki/Openswan" title="Openswan">Openswan</a></li> <li><a href="/wiki/OpenVPN" title="OpenVPN">OpenVPN</a></li> <li><a href="/wiki/SoftEther_VPN" title="SoftEther VPN">SoftEther VPN</a></li> <li><a href="/wiki/StrongSwan" title="StrongSwan">strongSwan</a></li> <li><a href="/wiki/Tinc_(protocol)" title="Tinc (protocol)">Tinc</a></li> <li><a href="/wiki/WireGuard" title="WireGuard">WireGuard</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/ZRTP" title="ZRTP">ZRTP</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Jitsi" title="Jitsi">Jitsi</a></li> <li><a href="/wiki/Linphone" title="Linphone">Linphone</a></li> <li><a href="/wiki/Jami_(software)" title="Jami (software)">Jami</a></li> <li><a href="/wiki/Zfone" title="Zfone">Zfone</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Peer-to-peer" title="Peer-to-peer">P2P</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Bitmessage" title="Bitmessage">Bitmessage</a></li> <li><a href="/wiki/Briar_(software)" title="Briar (software)">Briar</a></li> <li><a href="/wiki/RetroShare" class="mw-redirect" title="RetroShare">RetroShare</a></li> <li><a href="/wiki/Tox_(protocol)" title="Tox (protocol)">Tox</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Double_Ratchet_Algorithm" title="Double Ratchet Algorithm">DRA</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Matrix_(protocol)" title="Matrix (protocol)">Matrix</a></li> <li><a href="/wiki/OMEMO" title="OMEMO">OMEMO</a> <ul><li><a href="/wiki/Cryptocat" title="Cryptocat">Cryptocat</a></li> <li><a href="/wiki/ChatSecure" title="ChatSecure">ChatSecure</a></li></ul></li> <li><a href="/wiki/Wire_Swiss" title="Wire Swiss">Proteus</a></li> <li><a href="/wiki/Session_(software)" title="Session (software)">Session</a></li> <li><a href="/wiki/Signal_Protocol" title="Signal Protocol">Signal Protocol</a> <ul><li><a href="/wiki/Facebook_Messenger" class="mw-redirect" title="Facebook Messenger">Facebook Messenger</a></li> <li><a href="/wiki/Google_Allo" title="Google Allo">Google Allo</a></li> <li><a href="/wiki/Google_Messages" title="Google Messages">Google Messages</a></li> <li><a href="/wiki/Signal_(messaging_app)" class="mw-redirect" title="Signal (messaging app)">Signal</a></li> <li><a href="/wiki/TextSecure" title="TextSecure">TextSecure</a></li> <li><a href="/wiki/WhatsApp" title="WhatsApp">WhatsApp</a></li></ul></li></ul> </div></td></tr></tbody></table><div></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Disk_encryption" title="Disk encryption">Disk encryption</a><br /><span style="font-weight:normal">(<a href="/wiki/Comparison_of_disk_encryption_software" title="Comparison of disk encryption software">Comparison</a>)</span></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/BestCrypt" title="BestCrypt">BestCrypt</a></li> <li><a href="/wiki/BitLocker" title="BitLocker">BitLocker</a></li> <li><a href="/wiki/CrossCrypt" title="CrossCrypt">CrossCrypt</a></li> <li><a href="/wiki/Cryptoloop" title="Cryptoloop">Cryptoloop</a></li> <li><a href="/wiki/Dm-crypt" title="Dm-crypt">dm-crypt</a></li> <li><a href="/wiki/DriveSentry" title="DriveSentry">DriveSentry</a></li> <li><a href="/wiki/E4M" title="E4M">E4M</a></li> <li><a href="/wiki/ECryptfs" title="ECryptfs">eCryptfs</a></li> <li><a href="/wiki/FileVault" title="FileVault">FileVault</a></li> <li><a href="/wiki/FreeOTFE" title="FreeOTFE">FreeOTFE</a></li> <li><a href="/wiki/GBDE" title="GBDE">GBDE</a></li> <li><a href="/wiki/Geli_(software)" title="Geli (software)">geli</a></li> <li><a href="/wiki/Linux_Unified_Key_Setup" title="Linux Unified Key Setup">LUKS</a></li> <li><a href="/wiki/PGPDisk" title="PGPDisk">PGPDisk</a></li> <li><a href="/wiki/Private_Disk" title="Private Disk">Private Disk</a></li> <li><a href="/wiki/Scramdisk" title="Scramdisk">Scramdisk</a></li> <li><a href="/wiki/Sentry_2020" title="Sentry 2020">Sentry 2020</a></li> <li><a href="/wiki/TrueCrypt" title="TrueCrypt">TrueCrypt</a> <ul><li><a href="/wiki/TrueCrypt_version_history" title="TrueCrypt version history">History</a></li></ul></li> <li><a href="/wiki/VeraCrypt" title="VeraCrypt">VeraCrypt</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Anonymity#Anonymity_on_the_Internet" title="Anonymity">Anonymity</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/GNUnet#File_sharing" title="GNUnet">GNUnet</a></li> <li><a href="/wiki/I2P" title="I2P">I2P</a></li> <li><a href="/wiki/Java_Anon_Proxy" title="Java Anon Proxy">Java Anon Proxy</a></li> <li><a href="/wiki/Tor_(network)" title="Tor (network)">Tor</a></li> <li><a href="/wiki/Vidalia_(software)" title="Vidalia (software)">Vidalia</a></li> <li><a href="/wiki/RetroShare" class="mw-redirect" title="RetroShare">RetroShare</a></li> <li><a href="/wiki/Ricochet_(software)" title="Ricochet (software)">Ricochet</a></li> <li><a href="/wiki/Wickr" title="Wickr">Wickr</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/File_system" title="File system">File systems</a> <span style="font-weight:normal">(<a href="/wiki/List_of_cryptographic_file_systems" title="List of cryptographic file systems">List</a>)</span></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/EncFS" title="EncFS">EncFS</a></li> <li><a href="/wiki/Encrypting_File_System" title="Encrypting File System">EFS</a></li> <li><a href="/wiki/ECryptfs" title="ECryptfs">eCryptfs</a></li> <li><a href="/wiki/Linux_Unified_Key_Setup" title="Linux Unified Key Setup">LUKS</a></li> <li><a href="/w/index.php?title=PEFS&action=edit&redlink=1" class="new" title="PEFS (page does not exist)">PEFS</a></li> <li><a href="/wiki/Rubberhose_(file_system)" class="mw-redirect" title="Rubberhose (file system)">Rubberhose</a></li> <li><a href="/wiki/StegFS" title="StegFS">StegFS</a></li> <li><a href="/wiki/Tahoe-LAFS" title="Tahoe-LAFS">Tahoe-LAFS</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Security-focused_operating_system" title="Security-focused operating system">Security-focused<br />operating system</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Tails_(operating_system)" title="Tails (operating system)">Tails</a></li> <li><a href="/wiki/Qubes" class="mw-redirect" title="Qubes">Qubes</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Service providers</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Freenet" class="mw-redirect" title="Freenet">Freenet</a></li> <li><a href="/wiki/Tresorit" title="Tresorit">Tresorit</a></li> <li><a href="/wiki/Wuala" title="Wuala">Wuala</a></li> <li><a href="/wiki/NordLocker" title="NordLocker">NordLocker</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Educational</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/CrypTool" title="CrypTool">CrypTool</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Anti%E2%80%93computer_forensics" title="Anti–computer forensics">Anti–computer forensics</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/USBKill" title="USBKill">USBKill</a></li> <li><a href="/wiki/BusKill" title="BusKill">BusKill</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Related topics</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Outline_of_cryptography" title="Outline of cryptography">Outline of cryptography</a></li> <li><a href="/wiki/Timeline_of_cryptography" title="Timeline of cryptography">Timeline of cryptography</a></li> <li><a href="/wiki/Hash_function" title="Hash function">Hash functions</a> <ul><li><a class="mw-selflink selflink">Cryptographic hash function</a></li> <li><a href="/wiki/List_of_hash_functions" title="List of hash functions">List of hash functions</a></li></ul></li> <li><a href="/wiki/Homomorphic_encryption" title="Homomorphic encryption">Homomorphic encryption</a></li> <li><a href="/wiki/End-to-end_encryption" title="End-to-end encryption">End-to-end encryption</a></li> <li><a href="/wiki/S/MIME" title="S/MIME">S/MIME</a></li></ul> </div></td></tr><tr><td class="navbox-abovebelow" colspan="2"><div> <ul><li><span class="noviewer" typeof="mw:File"><span title="Category"><img alt="" src="//upload.wikimedia.org/wikipedia/en/thumb/9/96/Symbol_category_class.svg/16px-Symbol_category_class.svg.png" decoding="async" width="16" height="16" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/9/96/Symbol_category_class.svg/23px-Symbol_category_class.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/9/96/Symbol_category_class.svg/31px-Symbol_category_class.svg.png 2x" data-file-width="180" data-file-height="185" /></span></span> <a href="/wiki/Category:Cryptographic_software" title="Category:Cryptographic software">Category</a></li> <li><span class="noviewer" typeof="mw:File"><span title="Commons page"><img alt="" src="//upload.wikimedia.org/wikipedia/en/thumb/4/4a/Commons-logo.svg/12px-Commons-logo.svg.png" decoding="async" width="12" height="16" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/4/4a/Commons-logo.svg/18px-Commons-logo.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/4/4a/Commons-logo.svg/24px-Commons-logo.svg.png 2x" data-file-width="1024" data-file-height="1376" /></span></span> <a href="https://commons.wikimedia.org/wiki/Category:Cryptographic_software" class="extiw" title="commons:Category:Cryptographic software">Commons</a></li></ul> </div></td></tr></tbody></table></div> <!-- NewPP limit report Parsed by mw‐web.codfw.main‐6b7f745dd4‐wlpvf Cached time: 20241125134001 Cache expiry: 2592000 Reduced expiry: false Complications: [vary‐revision‐sha1, show‐toc] CPU time usage: 1.131 seconds Real time usage: 1.570 seconds Preprocessor visited node count: 7554/1000000 Post‐expand include size: 259162/2097152 bytes Template argument size: 9117/2097152 bytes Highest expansion depth: 16/100 Expensive parser function count: 24/500 Unstrip recursion depth: 1/20 Unstrip post‐expand size: 141767/5000000 bytes Lua time usage: 0.693/10.000 seconds Lua memory usage: 10111927/52428800 bytes Number of Wikibase entities loaded: 0/400 --> <!-- Transclusion expansion time report (%,ms,calls,template) 100.00% 1269.571 1 -total 18.37% 233.239 1 Template:Reflist 11.70% 148.578 11 Template:Cite_web 9.67% 122.728 14 Template:Main 9.02% 114.557 13 Template:Cite_book 8.03% 101.947 8 Template:Navbox 6.85% 86.992 1 Template:Excerpt 6.85% 86.978 1 Template:SHA-box 6.79% 86.193 8 Template:Citation_needed 6.67% 84.621 12 Template:Sfn --> <!-- Saved in parser cache with key enwiki:pcache:idhash:439526-0!canonical and timestamp 20241125134001 and revision id 1257065475. Rendering was triggered because: page-view --> </div><!--esi <esi:include src="/esitest-fa8a495983347898/content" /> --><noscript><img src="https://login.wikimedia.org/wiki/Special:CentralAutoLogin/start?type=1x1&useformat=desktop" alt="" width="1" height="1" style="border: none; position: absolute;"></noscript> <div class="printfooter" data-nosnippet="">Retrieved from "<a dir="ltr" href="https://en.wikipedia.org/w/index.php?title=Cryptographic_hash_function&oldid=1257065475">https://en.wikipedia.org/w/index.php?title=Cryptographic_hash_function&oldid=1257065475</a>"</div></div> <div id="catlinks" class="catlinks" data-mw="interface"><div id="mw-normal-catlinks" class="mw-normal-catlinks"><a href="/wiki/Help:Category" title="Help:Category">Categories</a>: <ul><li><a href="/wiki/Category:Cryptographic_primitives" title="Category:Cryptographic primitives">Cryptographic primitives</a></li><li><a href="/wiki/Category:Cryptographic_hash_functions" title="Category:Cryptographic hash functions">Cryptographic hash functions</a></li><li><a href="/wiki/Category:Hashing" title="Category:Hashing">Hashing</a></li></ul></div><div id="mw-hidden-catlinks" class="mw-hidden-catlinks mw-hidden-cats-hidden">Hidden categories: <ul><li><a href="/wiki/Category:Webarchive_template_wayback_links" title="Category:Webarchive template wayback links">Webarchive template wayback links</a></li><li><a href="/wiki/Category:Articles_with_short_description" title="Category:Articles with short description">Articles with short description</a></li><li><a href="/wiki/Category:Short_description_is_different_from_Wikidata" title="Category:Short description is different from Wikidata">Short description is different from Wikidata</a></li><li><a href="/wiki/Category:Articles_needing_additional_references_from_May_2016" title="Category:Articles needing additional references from May 2016">Articles needing additional references from May 2016</a></li><li><a href="/wiki/Category:All_articles_needing_additional_references" title="Category:All articles needing additional references">All articles needing additional references</a></li><li><a href="/wiki/Category:All_articles_with_unsourced_statements" title="Category:All articles with unsourced statements">All articles with unsourced statements</a></li><li><a href="/wiki/Category:Articles_with_unsourced_statements_from_May_2023" title="Category:Articles with unsourced statements from May 2023">Articles with unsourced statements from May 2023</a></li><li><a href="/wiki/Category:Articles_with_excerpts" title="Category:Articles with excerpts">Articles with excerpts</a></li><li><a href="/wiki/Category:Articles_with_unsourced_statements_from_July_2017" title="Category:Articles with unsourced statements from July 2017">Articles with unsourced statements from July 2017</a></li><li><a href="/wiki/Category:Articles_with_unsourced_statements_from_May_2016" title="Category:Articles with unsourced statements from May 2016">Articles with unsourced statements from May 2016</a></li><li><a href="/wiki/Category:Articles_with_unsourced_statements_from_April_2020" title="Category:Articles with unsourced statements from April 2020">Articles with unsourced statements from April 2020</a></li></ul></div></div> </div> </main> </div> <div class="mw-footer-container"> <footer id="footer" class="mw-footer" > <ul id="footer-info"> <li id="footer-info-lastmod"> This page was last edited on 13 November 2024, at 01:51<span class="anonymous-show"> (UTC)</span>.</li> <li id="footer-info-copyright">Text is available under the <a href="/wiki/Wikipedia:Text_of_the_Creative_Commons_Attribution-ShareAlike_4.0_International_License" title="Wikipedia:Text of the Creative Commons Attribution-ShareAlike 4.0 International License">Creative Commons Attribution-ShareAlike 4.0 License</a>; additional terms may apply. By using this site, you agree to the <a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Terms_of_Use" class="extiw" title="foundation:Special:MyLanguage/Policy:Terms of Use">Terms of Use</a> and <a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Privacy_policy" class="extiw" title="foundation:Special:MyLanguage/Policy:Privacy policy">Privacy Policy</a>. Wikipedia® is a registered trademark of the <a rel="nofollow" class="external text" href="https://wikimediafoundation.org/">Wikimedia Foundation, Inc.</a>, a non-profit organization.</li> </ul> <ul id="footer-places"> <li id="footer-places-privacy"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Privacy_policy">Privacy policy</a></li> <li id="footer-places-about"><a href="/wiki/Wikipedia:About">About Wikipedia</a></li> <li id="footer-places-disclaimers"><a href="/wiki/Wikipedia:General_disclaimer">Disclaimers</a></li> <li id="footer-places-contact"><a href="//en.wikipedia.org/wiki/Wikipedia:Contact_us">Contact Wikipedia</a></li> <li id="footer-places-wm-codeofconduct"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Universal_Code_of_Conduct">Code of Conduct</a></li> <li id="footer-places-developers"><a href="https://developer.wikimedia.org">Developers</a></li> <li id="footer-places-statslink"><a href="https://stats.wikimedia.org/#/en.wikipedia.org">Statistics</a></li> <li id="footer-places-cookiestatement"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Cookie_statement">Cookie statement</a></li> <li id="footer-places-mobileview"><a href="//en.m.wikipedia.org/w/index.php?title=Cryptographic_hash_function&mobileaction=toggle_view_mobile" class="noprint stopMobileRedirectToggle">Mobile view</a></li> </ul> <ul id="footer-icons" class="noprint"> <li id="footer-copyrightico"><a href="https://wikimediafoundation.org/" class="cdx-button cdx-button--fake-button cdx-button--size-large cdx-button--fake-button--enabled"><img src="/static/images/footer/wikimedia-button.svg" width="84" height="29" alt="Wikimedia Foundation" loading="lazy"></a></li> <li id="footer-poweredbyico"><a href="https://www.mediawiki.org/" class="cdx-button cdx-button--fake-button cdx-button--size-large cdx-button--fake-button--enabled"><img src="/w/resources/assets/poweredby_mediawiki.svg" alt="Powered by MediaWiki" width="88" height="31" loading="lazy"></a></li> </ul> </footer> </div> </div> </div> <div class="vector-settings" id="p-dock-bottom"> <ul></ul> </div><script>(RLQ=window.RLQ||[]).push(function(){mw.config.set({"wgHostname":"mw-web.codfw.main-5c59558b9d-vx6kp","wgBackendResponseTime":143,"wgPageParseReport":{"limitreport":{"cputime":"1.131","walltime":"1.570","ppvisitednodes":{"value":7554,"limit":1000000},"postexpandincludesize":{"value":259162,"limit":2097152},"templateargumentsize":{"value":9117,"limit":2097152},"expansiondepth":{"value":16,"limit":100},"expensivefunctioncount":{"value":24,"limit":500},"unstrip-depth":{"value":1,"limit":20},"unstrip-size":{"value":141767,"limit":5000000},"entityaccesscount":{"value":0,"limit":400},"timingprofile":["100.00% 1269.571 1 -total"," 18.37% 233.239 1 Template:Reflist"," 11.70% 148.578 11 Template:Cite_web"," 9.67% 122.728 14 Template:Main"," 9.02% 114.557 13 Template:Cite_book"," 8.03% 101.947 8 Template:Navbox"," 6.85% 86.992 1 Template:Excerpt"," 6.85% 86.978 1 Template:SHA-box"," 6.79% 86.193 8 Template:Citation_needed"," 6.67% 84.621 12 Template:Sfn"]},"scribunto":{"limitreport-timeusage":{"value":"0.693","limit":"10.000"},"limitreport-memusage":{"value":10111927,"limit":52428800},"limitreport-logs":"anchor_id_list = table#1 {\n [\"CITEREFAlshaikhliAlAhmad2015\"] = 1,\n [\"CITEREFAumasson2017\"] = 1,\n [\"CITEREFBihamDunkelman2006\"] = 1,\n [\"CITEREFBrewster2017\"] = 1,\n [\"CITEREFBuldas2011\"] = 1,\n [\"CITEREFClaburn2019\"] = 1,\n [\"CITEREFDobraunigEichlsederMendel2015\"] = 1,\n [\"CITEREFDuongRizzo\"] = 1,\n [\"CITEREFFinney2004\"] = 1,\n [\"CITEREFGoodin2012\"] = 1,\n [\"CITEREFGrassi_Paul_A.2017\"] = 1,\n [\"CITEREFHaleviKrawczyk\"] = 1,\n [\"CITEREFHarnikKilianNaorReingold2005\"] = 1,\n [\"CITEREFHochShamir2008\"] = 1,\n [\"CITEREFJoux2004\"] = 1,\n [\"CITEREFKatzLindell2014\"] = 1,\n [\"CITEREFKelseySchneier2005\"] = 1,\n [\"CITEREFLucks2004\"] = 1,\n [\"CITEREFLyubashevskyMicciancioPeikertRosen2008\"] = 1,\n [\"CITEREFMendelRechbergerSchläffer2009\"] = 1,\n [\"CITEREFMenezesvan_OorschotVanstone2018\"] = 1,\n [\"CITEREFNandiPaul2010\"] = 1,\n [\"CITEREFPaarPelzl2009\"] = 1,\n [\"CITEREFPerrin2007\"] = 1,\n [\"CITEREFRogawayShrimpton2004\"] = 1,\n [\"CITEREFSchneier\"] = 1,\n [\"CITEREFSchneier2005\"] = 1,\n [\"CITEREFSotirovStevensAppelbaumLenstra2008\"] = 1,\n [\"CITEREFSwinhoeHill2020\"] = 1,\n}\ntemplate_list = table#1 {\n [\"Cit\"] = 1,\n [\"Citation\"] = 1,\n [\"Citation needed\"] = 6,\n [\"Cite book\"] = 13,\n [\"Cite conference\"] = 1,\n [\"Cite journal\"] = 1,\n [\"Cite magazine\"] = 1,\n [\"Cite news\"] = 2,\n [\"Cite report\"] = 1,\n [\"Cite web\"] = 11,\n [\"Cryptocurrencies\"] = 1,\n [\"Cryptographic software\"] = 1,\n [\"Cryptography navbox\"] = 1,\n [\"DEFAULTSORT:Cryptographic Hash Function\"] = 1,\n [\"Div col\"] = 1,\n [\"Div col end\"] = 1,\n [\"Excerpt\"] = 1,\n [\"GBurl\"] = 1,\n [\"Main\"] = 14,\n [\"Math\"] = 20,\n [\"More citations needed\"] = 1,\n [\"Refbegin\"] = 1,\n [\"Refend\"] = 1,\n [\"Reflist\"] = 1,\n [\"Rp\"] = 3,\n [\"SHA-box\"] = 1,\n [\"Section link\"] = 2,\n [\"Sfn\"] = 12,\n [\"Short description\"] = 1,\n [\"Sub\"] = 8,\n [\"Webarchive\"] = 3,\n [\"′\"] = 2,\n}\narticle_whitelist = table#1 {\n}\n"},"cachereport":{"origin":"mw-web.codfw.main-6b7f745dd4-wlpvf","timestamp":"20241125134001","ttl":2592000,"transientcontent":false}}});});</script> <script type="application/ld+json">{"@context":"https:\/\/schema.org","@type":"Article","name":"Cryptographic hash function","url":"https:\/\/en.wikipedia.org\/wiki\/Cryptographic_hash_function","sameAs":"http:\/\/www.wikidata.org\/entity\/Q477202","mainEntity":"http:\/\/www.wikidata.org\/entity\/Q477202","author":{"@type":"Organization","name":"Contributors to Wikimedia projects"},"publisher":{"@type":"Organization","name":"Wikimedia Foundation, Inc.","logo":{"@type":"ImageObject","url":"https:\/\/www.wikimedia.org\/static\/images\/wmf-hor-googpub.png"}},"datePublished":"2004-01-23T00:37:49Z","dateModified":"2024-11-13T01:51:47Z","image":"https:\/\/upload.wikimedia.org\/wikipedia\/commons\/2\/2b\/Cryptographic_Hash_Function.svg","headline":"special class of hash function that has certain properties which make it suitable for use in cryptography"}</script> </body> </html>