CINXE.COM
MD5 - 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>MD5 - 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":"634715b4-b37d-4d0a-ac6f-6fdb2e5cef87","wgCanonicalNamespace":"","wgCanonicalSpecialPageName":false,"wgNamespaceNumber":0,"wgPageName":"MD5","wgTitle":"MD5","wgCurRevisionId":1259440343,"wgRevisionId":1259440343,"wgArticleId":18826,"wgIsArticle":true,"wgIsRedirect":false,"wgAction":"view","wgUserName":null,"wgUserGroups":["*"],"wgCategories":["Webarchive template wayback links","All articles with dead external links","Articles with dead external links from February 2020","Articles with permanently dead external links","Articles with short description","Short description matches Wikidata","Use dmy dates from April 2014","Articles containing potentially dated statements from 2019","All articles containing potentially dated statements","Articles with example pseudocode","Cryptographic hash functions","Broken hash functions","Checksum algorithms"], "wgPageViewLanguage":"en","wgPageContentLanguage":"en","wgPageContentModel":"wikitext","wgRelevantPageName":"MD5","wgRelevantArticleId":18826,"wgIsProbablyEditable":true,"wgRelevantPageIsProbablyEditable":true,"wgRestrictionEdit":[],"wgRestrictionMove":[],"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,"wgRelatedArticlesCompat":[],"wgCentralAuthMobileDomain":false,"wgEditSubmitButtonLabelPublish":true,"wgULSPosition":"interlanguage","wgULSisCompactLinksEnabled":false,"wgVector2022LanguageInHeader":true,"wgULSisLanguageSelectorEmpty":false,"wgWikibaseItemId":"Q185235", "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.cite.styles":"ready","ext.math.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=["ext.cite.ux-enhancements","mediawiki.page.media","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.4"> <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 name="viewport" content="width=1120"> <meta property="og:title" content="MD5 - 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/MD5"> <link rel="alternate" type="application/x-wiki" title="Edit this page" href="/w/index.php?title=MD5&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/MD5"> <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-MD5 rootpage-MD5 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=MD5" 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=MD5" 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=MD5" 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=MD5" 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-History_and_cryptanalysis" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#History_and_cryptanalysis"> <div class="vector-toc-text"> <span class="vector-toc-numb">1</span> <span>History and cryptanalysis</span> </div> </a> <ul id="toc-History_and_cryptanalysis-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Security" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Security"> <div class="vector-toc-text"> <span class="vector-toc-numb">2</span> <span>Security</span> </div> </a> <button aria-controls="toc-Security-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 Security subsection</span> </button> <ul id="toc-Security-sublist" class="vector-toc-list"> <li id="toc-Overview_of_security_issues" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Overview_of_security_issues"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.1</span> <span>Overview of security issues</span> </div> </a> <ul id="toc-Overview_of_security_issues-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Collision_vulnerabilities" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Collision_vulnerabilities"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.2</span> <span>Collision vulnerabilities</span> </div> </a> <ul id="toc-Collision_vulnerabilities-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Preimage_vulnerability" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Preimage_vulnerability"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.3</span> <span>Preimage vulnerability</span> </div> </a> <ul id="toc-Preimage_vulnerability-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-Applications" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Applications"> <div class="vector-toc-text"> <span class="vector-toc-numb">3</span> <span>Applications</span> </div> </a> <ul id="toc-Applications-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Algorithm" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Algorithm"> <div class="vector-toc-text"> <span class="vector-toc-numb">4</span> <span>Algorithm</span> </div> </a> <button aria-controls="toc-Algorithm-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 Algorithm subsection</span> </button> <ul id="toc-Algorithm-sublist" class="vector-toc-list"> <li id="toc-Pseudocode" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Pseudocode"> <div class="vector-toc-text"> <span class="vector-toc-numb">4.1</span> <span>Pseudocode</span> </div> </a> <ul id="toc-Pseudocode-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-MD5_hashes" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#MD5_hashes"> <div class="vector-toc-text"> <span class="vector-toc-numb">5</span> <span>MD5 hashes</span> </div> </a> <ul id="toc-MD5_hashes-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Implementations" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Implementations"> <div class="vector-toc-text"> <span class="vector-toc-numb">6</span> <span>Implementations</span> </div> </a> <ul id="toc-Implementations-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-See_also" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#See_also"> <div class="vector-toc-text"> <span class="vector-toc-numb">7</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 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#References"> <div class="vector-toc-text"> <span class="vector-toc-numb">8</span> <span>References</span> </div> </a> <ul id="toc-References-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Further_reading" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Further_reading"> <div class="vector-toc-text"> <span class="vector-toc-numb">9</span> <span>Further reading</span> </div> </a> <ul id="toc-Further_reading-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-External_links" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#External_links"> <div class="vector-toc-text"> <span class="vector-toc-numb">10</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">MD5</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 45 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-45" 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">45 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%A5%D9%85_%D8%AF%D9%8A5" title="إم دي5 – Arabic" lang="ar" hreflang="ar" data-title="إم دي5" data-language-autonym="العربية" data-language-local-name="Arabic" class="interlanguage-link-target"><span>العربية</span></a></li><li class="interlanguage-link interwiki-az mw-list-item"><a href="https://az.wikipedia.org/wiki/MD5" title="MD5 – Azerbaijani" lang="az" hreflang="az" data-title="MD5" data-language-autonym="Azərbaycanca" data-language-local-name="Azerbaijani" class="interlanguage-link-target"><span>Azərbaycanca</span></a></li><li class="interlanguage-link interwiki-bg mw-list-item"><a href="https://bg.wikipedia.org/wiki/MD5" title="MD5 – Bulgarian" lang="bg" hreflang="bg" data-title="MD5" data-language-autonym="Български" data-language-local-name="Bulgarian" class="interlanguage-link-target"><span>Български</span></a></li><li class="interlanguage-link interwiki-ca mw-list-item"><a href="https://ca.wikipedia.org/wiki/MD5" title="MD5 – Catalan" lang="ca" hreflang="ca" data-title="MD5" 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/Message-Digest_algorithm" title="Message-Digest algorithm – Czech" lang="cs" hreflang="cs" data-title="Message-Digest algorithm" 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-da mw-list-item"><a href="https://da.wikipedia.org/wiki/MD5" title="MD5 – Danish" lang="da" hreflang="da" data-title="MD5" data-language-autonym="Dansk" data-language-local-name="Danish" class="interlanguage-link-target"><span>Dansk</span></a></li><li class="interlanguage-link interwiki-de mw-list-item"><a href="https://de.wikipedia.org/wiki/Message-Digest_Algorithm_5" title="Message-Digest Algorithm 5 – German" lang="de" hreflang="de" data-title="Message-Digest Algorithm 5" data-language-autonym="Deutsch" data-language-local-name="German" class="interlanguage-link-target"><span>Deutsch</span></a></li><li class="interlanguage-link interwiki-et mw-list-item"><a href="https://et.wikipedia.org/wiki/MD5" title="MD5 – Estonian" lang="et" hreflang="et" data-title="MD5" data-language-autonym="Eesti" data-language-local-name="Estonian" class="interlanguage-link-target"><span>Eesti</span></a></li><li class="interlanguage-link interwiki-es mw-list-item"><a href="https://es.wikipedia.org/wiki/MD5" title="MD5 – Spanish" lang="es" hreflang="es" data-title="MD5" 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-eo mw-list-item"><a href="https://eo.wikipedia.org/wiki/MD5" title="MD5 – Esperanto" lang="eo" hreflang="eo" data-title="MD5" data-language-autonym="Esperanto" data-language-local-name="Esperanto" class="interlanguage-link-target"><span>Esperanto</span></a></li><li class="interlanguage-link interwiki-eu mw-list-item"><a href="https://eu.wikipedia.org/wiki/MD5" title="MD5 – Basque" lang="eu" hreflang="eu" data-title="MD5" data-language-autonym="Euskara" data-language-local-name="Basque" class="interlanguage-link-target"><span>Euskara</span></a></li><li class="interlanguage-link interwiki-fa mw-list-item"><a href="https://fa.wikipedia.org/wiki/%D8%A7%D9%85%E2%80%8C%D8%AF%DB%8C%DB%B5" 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/MD5" title="MD5 – French" lang="fr" hreflang="fr" data-title="MD5" 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/MD5" title="MD5 – Korean" lang="ko" hreflang="ko" data-title="MD5" data-language-autonym="한국어" data-language-local-name="Korean" class="interlanguage-link-target"><span>한국어</span></a></li><li class="interlanguage-link interwiki-hy mw-list-item"><a href="https://hy.wikipedia.org/wiki/MD5" title="MD5 – Armenian" lang="hy" hreflang="hy" data-title="MD5" data-language-autonym="Հայերեն" data-language-local-name="Armenian" class="interlanguage-link-target"><span>Հայերեն</span></a></li><li class="interlanguage-link interwiki-hr mw-list-item"><a href="https://hr.wikipedia.org/wiki/MD5" title="MD5 – Croatian" lang="hr" hreflang="hr" data-title="MD5" data-language-autonym="Hrvatski" data-language-local-name="Croatian" class="interlanguage-link-target"><span>Hrvatski</span></a></li><li class="interlanguage-link interwiki-id mw-list-item"><a href="https://id.wikipedia.org/wiki/MD5" title="MD5 – Indonesian" lang="id" hreflang="id" data-title="MD5" 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/MD5" title="MD5 – Italian" lang="it" hreflang="it" data-title="MD5" 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/MD5" title="MD5 – Hebrew" lang="he" hreflang="he" data-title="MD5" 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/MD5" title="MD5 – Latvian" lang="lv" hreflang="lv" data-title="MD5" 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/MD5" title="MD5 – Lithuanian" lang="lt" hreflang="lt" data-title="MD5" 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/MD5" title="MD5 – Hungarian" lang="hu" hreflang="hu" data-title="MD5" 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%8E%E0%B4%82%E0%B4%A1%E0%B4%BF5" title="എംഡി5 – Malayalam" lang="ml" hreflang="ml" data-title="എംഡി5" data-language-autonym="മലയാളം" data-language-local-name="Malayalam" class="interlanguage-link-target"><span>മലയാളം</span></a></li><li class="interlanguage-link interwiki-ms mw-list-item"><a href="https://ms.wikipedia.org/wiki/MD5" title="MD5 – Malay" lang="ms" hreflang="ms" data-title="MD5" data-language-autonym="Bahasa Melayu" data-language-local-name="Malay" class="interlanguage-link-target"><span>Bahasa Melayu</span></a></li><li class="interlanguage-link interwiki-nl mw-list-item"><a href="https://nl.wikipedia.org/wiki/MD5" title="MD5 – Dutch" lang="nl" hreflang="nl" data-title="MD5" data-language-autonym="Nederlands" data-language-local-name="Dutch" class="interlanguage-link-target"><span>Nederlands</span></a></li><li class="interlanguage-link interwiki-ja mw-list-item"><a href="https://ja.wikipedia.org/wiki/MD5" title="MD5 – Japanese" lang="ja" hreflang="ja" data-title="MD5" data-language-autonym="日本語" data-language-local-name="Japanese" class="interlanguage-link-target"><span>日本語</span></a></li><li class="interlanguage-link interwiki-no mw-list-item"><a href="https://no.wikipedia.org/wiki/MD5" title="MD5 – Norwegian Bokmål" lang="nb" hreflang="nb" data-title="MD5" data-language-autonym="Norsk bokmål" data-language-local-name="Norwegian Bokmål" class="interlanguage-link-target"><span>Norsk bokmål</span></a></li><li class="interlanguage-link interwiki-pl mw-list-item"><a href="https://pl.wikipedia.org/wiki/MD5" title="MD5 – Polish" lang="pl" hreflang="pl" data-title="MD5" data-language-autonym="Polski" data-language-local-name="Polish" class="interlanguage-link-target"><span>Polski</span></a></li><li class="interlanguage-link interwiki-pt mw-list-item"><a href="https://pt.wikipedia.org/wiki/MD5" title="MD5 – Portuguese" lang="pt" hreflang="pt" data-title="MD5" 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-ro mw-list-item"><a href="https://ro.wikipedia.org/wiki/MD5" title="MD5 – Romanian" lang="ro" hreflang="ro" data-title="MD5" data-language-autonym="Română" data-language-local-name="Romanian" class="interlanguage-link-target"><span>Română</span></a></li><li class="interlanguage-link interwiki-ru badge-Q17559452 badge-recommendedarticle mw-list-item" title="recommended article"><a href="https://ru.wikipedia.org/wiki/MD5" title="MD5 – Russian" lang="ru" hreflang="ru" data-title="MD5" 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/MD5" title="MD5 – Simple English" lang="en-simple" hreflang="en-simple" data-title="MD5" 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/Message-Digest_algorithm" title="Message-Digest algorithm – Slovak" lang="sk" hreflang="sk" data-title="Message-Digest algorithm" 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-sl mw-list-item"><a href="https://sl.wikipedia.org/wiki/Algoritem_MD5" title="Algoritem MD5 – Slovenian" lang="sl" hreflang="sl" data-title="Algoritem MD5" data-language-autonym="Slovenščina" data-language-local-name="Slovenian" 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/MD5" title="MD5 – Serbian" lang="sr" hreflang="sr" data-title="MD5" data-language-autonym="Српски / srpski" data-language-local-name="Serbian" class="interlanguage-link-target"><span>Српски / srpski</span></a></li><li class="interlanguage-link interwiki-sh mw-list-item"><a href="https://sh.wikipedia.org/wiki/MD5" title="MD5 – Serbo-Croatian" lang="sh" hreflang="sh" data-title="MD5" data-language-autonym="Srpskohrvatski / српскохрватски" data-language-local-name="Serbo-Croatian" class="interlanguage-link-target"><span>Srpskohrvatski / српскохрватски</span></a></li><li class="interlanguage-link interwiki-fi mw-list-item"><a href="https://fi.wikipedia.org/wiki/MD5" title="MD5 – Finnish" lang="fi" hreflang="fi" data-title="MD5" data-language-autonym="Suomi" data-language-local-name="Finnish" class="interlanguage-link-target"><span>Suomi</span></a></li><li class="interlanguage-link interwiki-sv mw-list-item"><a href="https://sv.wikipedia.org/wiki/MD5" title="MD5 – Swedish" lang="sv" hreflang="sv" data-title="MD5" data-language-autonym="Svenska" data-language-local-name="Swedish" class="interlanguage-link-target"><span>Svenska</span></a></li><li class="interlanguage-link interwiki-th mw-list-item"><a href="https://th.wikipedia.org/wiki/%E0%B9%80%E0%B8%AD%E0%B9%87%E0%B8%A1%E0%B8%94%E0%B8%B55" title="เอ็มดี5 – Thai" lang="th" hreflang="th" data-title="เอ็มดี5" data-language-autonym="ไทย" data-language-local-name="Thai" class="interlanguage-link-target"><span>ไทย</span></a></li><li class="interlanguage-link interwiki-tg mw-list-item"><a href="https://tg.wikipedia.org/wiki/MD5" title="MD5 – Tajik" lang="tg" hreflang="tg" data-title="MD5" data-language-autonym="Тоҷикӣ" data-language-local-name="Tajik" class="interlanguage-link-target"><span>Тоҷикӣ</span></a></li><li class="interlanguage-link interwiki-tr mw-list-item"><a href="https://tr.wikipedia.org/wiki/MD5" title="MD5 – Turkish" lang="tr" hreflang="tr" data-title="MD5" 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/MD5" title="MD5 – Ukrainian" lang="uk" hreflang="uk" data-title="MD5" 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/MD5" title="MD5 – Vietnamese" lang="vi" hreflang="vi" data-title="MD5" 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-wuu mw-list-item"><a href="https://wuu.wikipedia.org/wiki/MD5" title="MD5 – Wu" lang="wuu" hreflang="wuu" data-title="MD5" data-language-autonym="吴语" data-language-local-name="Wu" class="interlanguage-link-target"><span>吴语</span></a></li><li class="interlanguage-link interwiki-zh mw-list-item"><a href="https://zh.wikipedia.org/wiki/MD5" title="MD5 – Chinese" lang="zh" hreflang="zh" data-title="MD5" 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/Q185235#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/MD5" 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:MD5" 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/MD5"><span>Read</span></a></li><li id="ca-edit" class="vector-tab-noicon mw-list-item"><a href="/w/index.php?title=MD5&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=MD5&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/MD5"><span>Read</span></a></li><li id="ca-more-edit" class="vector-more-collapsible-item mw-list-item"><a href="/w/index.php?title=MD5&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=MD5&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/MD5" 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/MD5" 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=MD5&oldid=1259440343" 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=MD5&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=MD5&id=1259440343&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%2FMD5"><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%2FMD5"><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=MD5&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=MD5&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-wikifunctions mw-list-item"><a href="https://www.wikifunctions.org/wiki/Z10137" hreflang="en"><span>Wikifunctions</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/Q185235" 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"></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">Message-digest hashing algorithm</div> <p class="mw-empty-elt"> </p> <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"><caption class="infobox-title">MD5</caption><tbody><tr><th colspan="2" class="infobox-header">General</th></tr><tr><th scope="row" class="infobox-label">Designers</th><td class="infobox-data"><a href="/wiki/Ronald_Rivest" class="mw-redirect" title="Ronald Rivest">Ronald Rivest</a></td></tr><tr><th scope="row" class="infobox-label">First published</th><td class="infobox-data">April 1992</td></tr><tr><th scope="row" class="infobox-label">Series</th><td class="infobox-data"><a href="/wiki/MD2_(cryptography)" class="mw-redirect" title="MD2 (cryptography)">MD2</a>, <a href="/wiki/MD4" title="MD4">MD4</a>, MD5, <a href="/wiki/MD6" title="MD6">MD6</a></td></tr><tr><th colspan="2" class="infobox-header">Cipher detail</th></tr><tr><th scope="row" class="infobox-label"><a href="/wiki/Cryptographic_hash_function" title="Cryptographic hash function">Digest sizes</a></th><td class="infobox-data">128 bit</td></tr><tr><th scope="row" class="infobox-label"><a href="/wiki/Block_size_(cryptography)" title="Block size (cryptography)">Block sizes</a></th><td class="infobox-data">512 bit</td></tr><tr><th scope="row" class="infobox-label">Structure</th><td class="infobox-data"><a href="/wiki/Merkle%E2%80%93Damg%C3%A5rd_construction" title="Merkle–Damgård construction">Merkle–Damgård construction</a></td></tr><tr><th scope="row" class="infobox-label"><a href="/wiki/Round_(cryptography)" title="Round (cryptography)">Rounds</a></th><td class="infobox-data">4<sup id="cite_ref-1" class="reference"><a href="#cite_note-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup></td></tr><tr><th colspan="2" class="infobox-header">Best public <a href="/wiki/Cryptanalysis" title="Cryptanalysis">cryptanalysis</a></th></tr><tr><td colspan="2" class="infobox-below" style="line-height: 1.25em; text-align: left">A 2013 attack by Xie Tao, Fanbao Liu, and Dengguo Feng breaks MD5 <a href="/wiki/Collision_resistance" title="Collision resistance">collision resistance</a> in 2<sup>18</sup> time. This attack runs in less than a second on a regular computer.<sup id="cite_ref-2" class="reference"><a href="#cite_note-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup> MD5 is prone to <a href="/wiki/Length_extension_attack" title="Length extension attack">length extension attacks</a>.</td></tr></tbody></table> <p>The <b>MD5 message-digest algorithm</b> is a widely used <a href="/wiki/Hash_function" title="Hash function">hash function</a> producing a 128-<a href="/wiki/Bit" title="Bit">bit</a> hash value. 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 <a href="/wiki/MD4" title="MD4">MD4</a>,<sup id="cite_ref-Ron_Barak_3-0" class="reference"><a href="#cite_note-Ron_Barak-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup> and was specified in 1992 as RFC 1321. </p><p>MD5 can be used as a <a href="/wiki/Checksum" title="Checksum">checksum</a> to verify <a href="/wiki/Data_integrity" title="Data integrity">data integrity</a> against unintentional corruption. Historically it was widely used as a <a href="/wiki/Cryptographic_hash_function" title="Cryptographic hash function">cryptographic hash function</a>; however it has been found to suffer from extensive vulnerabilities. It remains suitable for other non-cryptographic purposes, for example for determining the partition for a particular key in a <a href="/wiki/Partition_(database)" title="Partition (database)">partitioned database</a>, and may be preferred due to lower computational requirements than more recent <a href="/wiki/Secure_Hash_Algorithms" title="Secure Hash Algorithms">Secure Hash Algorithms</a>.<sup id="cite_ref-4" class="reference"><a href="#cite_note-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup> </p> <meta property="mw:PageProp/toc" /> <div class="mw-heading mw-heading2"><h2 id="History_and_cryptanalysis">History and cryptanalysis</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=MD5&action=edit&section=1" title="Edit section: History and cryptanalysis"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>MD5 is one in a series of <a href="/wiki/Message_digest" class="mw-redirect" title="Message digest">message digest</a> algorithms designed by Professor <a href="/wiki/Ronald_Rivest" class="mw-redirect" title="Ronald Rivest">Ronald Rivest</a> of <a href="/wiki/Massachusetts_Institute_of_Technology" title="Massachusetts Institute of Technology">MIT</a> (Rivest, 1992). When analytic work indicated that MD5's predecessor <a href="/wiki/MD4" title="MD4">MD4</a> was likely to be insecure, Rivest designed MD5 in 1991 as a secure replacement. (<a href="/wiki/Hans_Dobbertin" title="Hans Dobbertin">Hans Dobbertin</a> did indeed later find weaknesses in MD4.) </p><p>In 1993, Den Boer and Bosselaers gave an early, although limited, result of finding a "<a href="/wiki/Hash_collision" title="Hash collision">pseudo-collision</a>" of the MD5 <a href="/wiki/One-way_compression_function" title="One-way compression function">compression function</a>; that is, two different <a href="/wiki/Initialization_vector" title="Initialization vector">initialization vectors</a> that produce an identical digest. </p><p>In 1996, Dobbertin announced a collision of the compression function of MD5 (Dobbertin, 1996). While this was not an attack on the full MD5 hash function, it was close enough for cryptographers to recommend switching to a replacement, such as <a href="/wiki/SHA-1" title="SHA-1">SHA-1</a> (also compromised since) or <a href="/wiki/RIPEMD-160" class="mw-redirect" title="RIPEMD-160">RIPEMD-160</a>. </p><p>The size of the hash value (128 bits) is small enough to contemplate a <a href="/wiki/Birthday_attack" title="Birthday attack">birthday attack</a>. <a href="/wiki/MD5CRK" title="MD5CRK">MD5CRK</a> was a <a href="/wiki/Distributed_computing" title="Distributed computing">distributed project</a> started in March 2004 to demonstrate that MD5 is practically insecure by finding a collision using a birthday attack. </p><p>MD5CRK ended shortly after 17 August 2004, when <a href="/wiki/Hash_collision" title="Hash collision">collisions</a> for the full MD5 were announced by <a href="/wiki/Xiaoyun_Wang" class="mw-redirect" title="Xiaoyun Wang">Xiaoyun Wang</a>, Dengguo Feng, <a href="/wiki/Xuejia_Lai" title="Xuejia Lai">Xuejia Lai</a>, and Hongbo Yu.<sup id="cite_ref-autogenerated2_5-0" class="reference"><a href="#cite_note-autogenerated2-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-6" class="reference"><a href="#cite_note-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup> Their analytical attack was reported to take only one hour on an <a href="/wiki/IBM_p690" class="mw-redirect" title="IBM p690">IBM p690</a> cluster.<sup id="cite_ref-7" class="reference"><a href="#cite_note-7"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup> </p><p>On 1 March 2005, <a href="/wiki/Arjen_Lenstra" title="Arjen Lenstra">Arjen Lenstra</a>, <a href="/wiki/Wang_Xiaoyun" title="Wang Xiaoyun">Xiaoyun Wang</a>, and Benne de Weger demonstrated construction of two <a href="/wiki/X.509" title="X.509">X.509</a> certificates with different public keys and the same MD5 hash value, a demonstrably practical collision.<sup id="cite_ref-8" class="reference"><a href="#cite_note-8"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup> The construction included private keys for both public keys. A few days later, <a href="/wiki/Vlastimil_Klima" class="mw-redirect" title="Vlastimil Klima">Vlastimil Klima</a> described an improved algorithm, able to construct MD5 collisions in a few hours on a single notebook computer.<sup id="cite_ref-9" class="reference"><a href="#cite_note-9"><span class="cite-bracket">[</span>9<span class="cite-bracket">]</span></a></sup> On 18 March 2006, Klima published an algorithm that could find a collision within one minute on a single notebook computer, using a method he calls tunneling.<sup id="cite_ref-10" class="reference"><a href="#cite_note-10"><span class="cite-bracket">[</span>10<span class="cite-bracket">]</span></a></sup> </p><p>Various MD5-related <a href="/wiki/Request_for_Comments#Obtaining_RFCs" title="Request for Comments">RFC errata</a> have been published. In 2009, the <a href="/wiki/United_States_Cyber_Command" title="United States Cyber Command">United States Cyber Command</a> used an MD5 hash value of their mission statement as a part of their official emblem.<sup id="cite_ref-11" class="reference"><a href="#cite_note-11"><span class="cite-bracket">[</span>11<span class="cite-bracket">]</span></a></sup> </p><p>On 24 December 2010, Tao Xie and Dengguo Feng announced the first published single-block (512-bit) MD5 collision.<sup id="cite_ref-12" class="reference"><a href="#cite_note-12"><span class="cite-bracket">[</span>12<span class="cite-bracket">]</span></a></sup> (Previous collision discoveries had relied on multi-block attacks.) For "security reasons", Xie and Feng did not disclose the new attack method. They issued a challenge to the cryptographic community, offering a US$10,000 reward to the first finder of a different 64-byte collision before 1 January 2013. <a href="/wiki/Marc_Stevens_(cryptology)" title="Marc Stevens (cryptology)">Marc Stevens</a> responded to the challenge and published colliding single-block messages as well as the construction algorithm and sources.<sup id="cite_ref-13" class="reference"><a href="#cite_note-13"><span class="cite-bracket">[</span>13<span class="cite-bracket">]</span></a></sup> </p><p>In 2011 an informational RFC 6151<sup id="cite_ref-14" class="reference"><a href="#cite_note-14"><span class="cite-bracket">[</span>14<span class="cite-bracket">]</span></a></sup> was approved to update the security considerations in MD5<sup id="cite_ref-15" class="reference"><a href="#cite_note-15"><span class="cite-bracket">[</span>15<span class="cite-bracket">]</span></a></sup> and HMAC-MD5.<sup id="cite_ref-16" class="reference"><a href="#cite_note-16"><span class="cite-bracket">[</span>16<span class="cite-bracket">]</span></a></sup> </p> <div class="mw-heading mw-heading2"><h2 id="Security">Security</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=MD5&action=edit&section=2" title="Edit section: Security"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>One basic requirement of any cryptographic hash function is that it should be <a href="/wiki/Computational_complexity_theory#Intractability" title="Computational complexity theory">computationally infeasible</a> to find two distinct messages that hash to the same value. MD5 fails this requirement catastrophically. On 31 December 2008, the <a href="/wiki/CMU_Software_Engineering_Institute" class="mw-redirect" title="CMU Software Engineering Institute">CMU Software Engineering Institute</a> concluded that MD5 was essentially "cryptographically broken and unsuitable for further use".<sup id="cite_ref-17" class="reference"><a href="#cite_note-17"><span class="cite-bracket">[</span>17<span class="cite-bracket">]</span></a></sup> The weaknesses of MD5 have been exploited in the field, most infamously by the <a href="/wiki/Flame_malware" class="mw-redirect" title="Flame malware">Flame malware</a> in 2012. As of 2019<sup class="plainlinks noexcerpt noprint asof-tag update" style="display:none;"><a class="external text" href="https://en.wikipedia.org/w/index.php?title=MD5&action=edit">[update]</a></sup>, MD5 continues to be widely used, despite its well-documented weaknesses and deprecation by security experts.<sup id="cite_ref-Cimpanu2019_18-0" class="reference"><a href="#cite_note-Cimpanu2019-18"><span class="cite-bracket">[</span>18<span class="cite-bracket">]</span></a></sup> </p><p>A <a href="/wiki/Collision_attack" title="Collision attack">collision attack</a> exists that can find <a href="/wiki/Collision_resistance" title="Collision resistance">collisions</a> within seconds on a computer with a 2.6 GHz Pentium 4 processor (complexity of 2<sup>24.1</sup>).<sup id="cite_ref-19" class="reference"><a href="#cite_note-19"><span class="cite-bracket">[</span>19<span class="cite-bracket">]</span></a></sup> Further, there is also a <a href="/wiki/Chosen-prefix_collision_attack" class="mw-redirect" title="Chosen-prefix collision attack">chosen-prefix collision attack</a> that can produce a collision for two inputs with specified prefixes within seconds, using off-the-shelf computing hardware (complexity 2<sup>39</sup>).<sup id="cite_ref-20" class="reference"><a href="#cite_note-20"><span class="cite-bracket">[</span>20<span class="cite-bracket">]</span></a></sup> The ability to find collisions has been greatly aided by the use of off-the-shelf <a href="/wiki/Graphics_processing_unit" title="Graphics processing unit">GPUs</a>. On an NVIDIA GeForce 8400GS graphics processor, 16–18 million hashes per second can be computed. An NVIDIA GeForce 8800 Ultra can calculate more than 200 million hashes per second.<sup id="cite_ref-21" class="reference"><a href="#cite_note-21"><span class="cite-bracket">[</span>21<span class="cite-bracket">]</span></a></sup> </p><p>These hash and collision attacks have been demonstrated in the public in various situations, including colliding document files<sup id="cite_ref-22" class="reference"><a href="#cite_note-22"><span class="cite-bracket">[</span>22<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-special-file-formats_23-0" class="reference"><a href="#cite_note-special-file-formats-23"><span class="cite-bracket">[</span>23<span class="cite-bracket">]</span></a></sup> and <a href="/wiki/Digital_certificate" class="mw-redirect" title="Digital certificate">digital certificates</a>.<sup id="cite_ref-sslHarmful_24-0" class="reference"><a href="#cite_note-sslHarmful-24"><span class="cite-bracket">[</span>24<span class="cite-bracket">]</span></a></sup> As of 2015, MD5 was demonstrated to be still quite widely used, most notably by security research and antivirus companies.<sup id="cite_ref-25" class="reference"><a href="#cite_note-25"><span class="cite-bracket">[</span>25<span class="cite-bracket">]</span></a></sup> </p><p>As of 2019, one quarter of widely used <a href="/wiki/Content_management_system" title="Content management system">content management systems</a> were reported to still use MD5 for <a href="/wiki/Password_hashing" class="mw-redirect" title="Password hashing">password hashing</a>.<sup id="cite_ref-Cimpanu2019_18-1" class="reference"><a href="#cite_note-Cimpanu2019-18"><span class="cite-bracket">[</span>18<span class="cite-bracket">]</span></a></sup> </p> <div class="mw-heading mw-heading3"><h3 id="Overview_of_security_issues">Overview of security issues</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=MD5&action=edit&section=3" title="Edit section: Overview of security issues"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>In 1996, a flaw was found in the design of MD5. While it was not deemed a fatal weakness at the time, cryptographers began recommending the use of other algorithms, such as <a href="/wiki/SHA-1" title="SHA-1">SHA-1</a>, which has since been found to be vulnerable as well.<sup id="cite_ref-26" class="reference"><a href="#cite_note-26"><span class="cite-bracket">[</span>26<span class="cite-bracket">]</span></a></sup> In 2004 it was shown that MD5 is not <a href="/wiki/Collision-resistant" class="mw-redirect" title="Collision-resistant">collision-resistant</a>.<sup id="cite_ref-27" class="reference"><a href="#cite_note-27"><span class="cite-bracket">[</span>27<span class="cite-bracket">]</span></a></sup> As such, MD5 is not suitable for applications like <a href="/wiki/Transport_Layer_Security" title="Transport Layer Security">SSL</a> <a href="/wiki/Public_key_certificate" title="Public key certificate">certificates</a> or <a href="/wiki/Digital_signature" title="Digital signature">digital signatures</a> that rely on this property for digital security. Researchers additionally discovered more serious flaws in MD5, and described a feasible <a href="/wiki/Collision_attack" title="Collision attack">collision attack</a>—a method to create a pair of inputs for which MD5 produces identical <a href="/wiki/Checksum" title="Checksum">checksums</a>.<sup id="cite_ref-autogenerated2_5-1" class="reference"><a href="#cite_note-autogenerated2-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-autogenerated1_28-0" class="reference"><a href="#cite_note-autogenerated1-28"><span class="cite-bracket">[</span>28<span class="cite-bracket">]</span></a></sup> Further advances were made in breaking MD5 in 2005, 2006, and 2007.<sup id="cite_ref-29" class="reference"><a href="#cite_note-29"><span class="cite-bracket">[</span>29<span class="cite-bracket">]</span></a></sup> In December 2008, a group of researchers used this technique to fake <a href="/wiki/SSL_certificate" class="mw-redirect" title="SSL certificate">SSL certificate</a> validity.<sup id="cite_ref-sslHarmful_24-1" class="reference"><a href="#cite_note-sslHarmful-24"><span class="cite-bracket">[</span>24<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-browserflaw_30-0" class="reference"><a href="#cite_note-browserflaw-30"><span class="cite-bracket">[</span>30<span class="cite-bracket">]</span></a></sup> </p><p>As of 2010, the <a href="/wiki/CMU_Software_Engineering_Institute" class="mw-redirect" title="CMU Software Engineering Institute">CMU Software Engineering Institute</a> considers MD5 "cryptographically broken and unsuitable for further use",<sup id="cite_ref-31" class="reference"><a href="#cite_note-31"><span class="cite-bracket">[</span>31<span class="cite-bracket">]</span></a></sup> and most U.S. government applications now require the <a href="/wiki/SHA-2" title="SHA-2">SHA-2</a> family of hash functions.<sup id="cite_ref-32" class="reference"><a href="#cite_note-32"><span class="cite-bracket">[</span>32<span class="cite-bracket">]</span></a></sup> In 2012, the <a href="/wiki/Flame_(malware)" title="Flame (malware)">Flame</a> malware exploited the weaknesses in MD5 to fake a Microsoft <a href="/wiki/Digital_signature" title="Digital signature">digital signature</a>.<sup id="cite_ref-foo_33-0" class="reference"><a href="#cite_note-foo-33"><span class="cite-bracket">[</span>33<span class="cite-bracket">]</span></a></sup> </p> <div class="mw-heading mw-heading3"><h3 id="Collision_vulnerabilities">Collision vulnerabilities</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=MD5&action=edit&section=4" title="Edit section: Collision vulnerabilities"><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">Further information: <a href="/wiki/Collision_attack" title="Collision attack">Collision attack</a></div> <p>In 1996, collisions were found in the compression function of MD5, and <a href="/wiki/Hans_Dobbertin" title="Hans Dobbertin">Hans Dobbertin</a> wrote in the <a href="/wiki/RSA_Laboratories" class="mw-redirect" title="RSA Laboratories">RSA Laboratories</a> technical newsletter, "The presented attack does not yet threaten practical applications of MD5, but it comes rather close ... in the future MD5 should no longer be implemented ... where a collision-resistant hash function is required."<sup id="cite_ref-34" class="reference"><a href="#cite_note-34"><span class="cite-bracket">[</span>34<span class="cite-bracket">]</span></a></sup> </p><p>In 2005, researchers were able to create pairs of <a href="/wiki/PostScript" title="PostScript">PostScript</a> documents<sup id="cite_ref-35" class="reference"><a href="#cite_note-35"><span class="cite-bracket">[</span>35<span class="cite-bracket">]</span></a></sup> and <a href="/wiki/X.509" title="X.509">X.509</a> certificates<sup id="cite_ref-36" class="reference"><a href="#cite_note-36"><span class="cite-bracket">[</span>36<span class="cite-bracket">]</span></a></sup> with the same hash. Later that year, MD5's designer Ron Rivest wrote that "md5 and sha1 are both clearly broken (in terms of collision-resistance)".<sup id="cite_ref-37" class="reference"><a href="#cite_note-37"><span class="cite-bracket">[</span>37<span class="cite-bracket">]</span></a></sup> </p><p>On 30 December 2008, a group of researchers announced at the 25th <a href="/wiki/Chaos_Communication_Congress" title="Chaos Communication Congress">Chaos Communication Congress</a> how they had used MD5 collisions to create an intermediate certificate authority certificate that appeared to be legitimate when checked by its MD5 hash.<sup id="cite_ref-sslHarmful_24-2" class="reference"><a href="#cite_note-sslHarmful-24"><span class="cite-bracket">[</span>24<span class="cite-bracket">]</span></a></sup> The researchers used a <a href="/wiki/PS3_cluster" class="mw-redirect" title="PS3 cluster">PS3 cluster</a> at the <a href="/wiki/%C3%89cole_Polytechnique_F%C3%A9d%C3%A9rale_de_Lausanne" title="École Polytechnique Fédérale de Lausanne">EPFL</a> in <a href="/wiki/Lausanne" title="Lausanne">Lausanne</a>, Switzerland<sup id="cite_ref-38" class="reference"><a href="#cite_note-38"><span class="cite-bracket">[</span>38<span class="cite-bracket">]</span></a></sup> to change a normal SSL certificate issued by <a href="/w/index.php?title=RapidSSL&action=edit&redlink=1" class="new" title="RapidSSL (page does not exist)">RapidSSL</a> into a working <a href="/wiki/CA_certificate" class="mw-redirect" title="CA certificate">CA certificate</a> for that issuer, which could then be used to create other certificates that would appear to be legitimate and issued by RapidSSL. <a href="/wiki/VeriSign" class="mw-redirect" title="VeriSign">VeriSign</a>, the issuers of RapidSSL certificates, said they stopped issuing new certificates using MD5 as their checksum algorithm for RapidSSL once the vulnerability was announced.<sup id="cite_ref-39" class="reference"><a href="#cite_note-39"><span class="cite-bracket">[</span>39<span class="cite-bracket">]</span></a></sup> Although Verisign declined to revoke existing certificates signed using MD5, their response was considered adequate by the authors of the exploit (<a href="/wiki/Alexander_Sotirov" title="Alexander Sotirov">Alexander Sotirov</a>, <a href="/wiki/Marc_Stevens_(Cryptology)" class="mw-redirect" title="Marc Stevens (Cryptology)">Marc Stevens</a>, <a href="/wiki/Jacob_Appelbaum" title="Jacob Appelbaum">Jacob Appelbaum</a>, <a href="/wiki/Arjen_Lenstra" title="Arjen Lenstra">Arjen Lenstra</a>, David Molnar, Dag Arne Osvik, and Benne de Weger).<sup id="cite_ref-sslHarmful_24-3" class="reference"><a href="#cite_note-sslHarmful-24"><span class="cite-bracket">[</span>24<span class="cite-bracket">]</span></a></sup> Bruce Schneier wrote of the attack that "we already knew that MD5 is a broken hash function" and that "no one should be using MD5 anymore".<sup id="cite_ref-40" class="reference"><a href="#cite_note-40"><span class="cite-bracket">[</span>40<span class="cite-bracket">]</span></a></sup> The SSL researchers wrote, "Our desired impact is that Certification Authorities will stop using MD5 in issuing new certificates. We also hope that use of MD5 in other applications will be reconsidered as well."<sup id="cite_ref-sslHarmful_24-4" class="reference"><a href="#cite_note-sslHarmful-24"><span class="cite-bracket">[</span>24<span class="cite-bracket">]</span></a></sup> </p><p>In 2012, according to <a href="/wiki/Microsoft" title="Microsoft">Microsoft</a>, the authors of the <a href="/wiki/Flame_(malware)" title="Flame (malware)">Flame</a> malware used an MD5 collision to forge a Windows code-signing certificate.<sup id="cite_ref-foo_33-1" class="reference"><a href="#cite_note-foo-33"><span class="cite-bracket">[</span>33<span class="cite-bracket">]</span></a></sup> </p><p>MD5 uses the <a href="/wiki/Merkle%E2%80%93Damg%C3%A5rd_construction" title="Merkle–Damgård construction">Merkle–Damgård construction</a>, so if two prefixes with the same hash can be constructed, a common suffix can be added to both to make the collision more likely to be accepted as valid data by the application using it. Furthermore, current collision-finding techniques allow specifying an arbitrary <i>prefix</i>: an attacker can create two colliding files that both begin with the same content. All the attacker needs to generate two colliding files is a template file with a 128-byte block of data, aligned on a 64-byte boundary, that can be changed freely by the collision-finding algorithm. An example MD5 collision, with the two messages differing in 6 bits, is: </p> <pre>d131dd02c5e6eec4 693d9a0698aff95c 2fcab5<span style="background-color: #87CEEB;color:black;">8</span>712467eab 4004583eb8fb7f89 55ad340609f4b302 83e4888325<span style="background-color: #87CEEB;color:black;">7</span>1415a 085125e8f7cdc99f d91dbd<span style="background-color: #87CEEB;color:black;">f</span>280373c5b d8823e3156348f5b ae6dacd436c919c6 dd53e2<span style="background-color: #87CEEB;color:black;">b</span>487da03fd 02396306d248cda0 e99f33420f577ee8 ce54b67080<span style="background-color: #87CEEB;color:black;">a</span>80d1e c69821bcb6a88393 96f965<span style="background-color: #87CEEB;color:black;">2</span>b6ff72a70 </pre> <pre>d131dd02c5e6eec4 693d9a0698aff95c 2fcab5<span style="background-color: #87CEEB;color:black;">0</span>712467eab 4004583eb8fb7f89 55ad340609f4b302 83e4888325<span style="background-color: #87CEEB;color:black;">f</span>1415a 085125e8f7cdc99f d91dbd<span style="background-color: #87CEEB;color:black;">7</span>280373c5b d8823e3156348f5b ae6dacd436c919c6 dd53e2<span style="background-color: #87CEEB;color:black;">3</span>487da03fd 02396306d248cda0 e99f33420f577ee8 ce54b67080<span style="background-color: #87CEEB;color:black;">2</span>80d1e c69821bcb6a88393 96f965<span style="background-color: #87CEEB;color:black;">a</span>b6ff72a70 </pre> <p>Both produce the MD5 hash <code>79054025255fb1a26e4bc422aef54eb4</code>.<sup id="cite_ref-41" class="reference"><a href="#cite_note-41"><span class="cite-bracket">[</span>41<span class="cite-bracket">]</span></a></sup> The difference between the two samples is that the leading bit in each <a href="/wiki/Nibble" title="Nibble">nibble</a> has been flipped. For example, the 20th byte (offset 0x13) in the top sample, 0x87, is 10000111 in binary. The leading bit in the byte (also the leading bit in the first nibble) is flipped to make 00000111, which is 0x07, as shown in the lower sample. </p><p>Later it was also found to be possible to construct collisions between two files with separately chosen prefixes. This technique was used in the creation of the rogue CA certificate in 2008. A new variant of parallelized collision searching using <a href="/wiki/Message_Passing_Interface" title="Message Passing Interface">MPI</a> was proposed by Anton Kuznetsov in 2014, which allowed finding a collision in 11 hours on a computing cluster.<sup id="cite_ref-42" class="reference"><a href="#cite_note-42"><span class="cite-bracket">[</span>42<span class="cite-bracket">]</span></a></sup> </p> <div class="mw-heading mw-heading3"><h3 id="Preimage_vulnerability">Preimage vulnerability</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=MD5&action=edit&section=5" title="Edit section: Preimage vulnerability"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>In April 2009, an attack against MD5 was published that breaks MD5's <a href="/wiki/Preimage_resistance" class="mw-redirect" title="Preimage resistance">preimage resistance</a>. This attack is only theoretical, with a computational complexity of 2<sup>123.4</sup> for full preimage.<sup id="cite_ref-43" class="reference"><a href="#cite_note-43"><span class="cite-bracket">[</span>43<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-44" class="reference"><a href="#cite_note-44"><span class="cite-bracket">[</span>44<span class="cite-bracket">]</span></a></sup> </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=MD5&action=edit&section=6" title="Edit section: Applications"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>MD5 digests have been widely used in the <a href="/wiki/Software" title="Software">software</a> world to provide some assurance that a transferred file has arrived intact. For example, file servers often provide a pre-computed MD5 (known as <a href="/wiki/Md5sum" title="Md5sum">md5sum</a>) <a href="/wiki/Checksum" title="Checksum">checksum</a> for the files, so that a user can compare the checksum of the downloaded file to it. Most unix-based operating systems include MD5 sum utilities in their distribution packages; Windows users may use the included <a href="/wiki/PowerShell" title="PowerShell">PowerShell</a> function "Get-FileHash", the included command line function "certutil -hashfile <filename> md5",<sup id="cite_ref-45" class="reference"><a href="#cite_note-45"><span class="cite-bracket">[</span>45<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-46" class="reference"><a href="#cite_note-46"><span class="cite-bracket">[</span>46<span class="cite-bracket">]</span></a></sup> install a Microsoft utility,<sup id="cite_ref-47" class="reference"><a href="#cite_note-47"><span class="cite-bracket">[</span>47<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-48" class="reference"><a href="#cite_note-48"><span class="cite-bracket">[</span>48<span class="cite-bracket">]</span></a></sup> or use third-party applications. Android ROMs also use this type of checksum. </p> <figure class="mw-halign-center" typeof="mw:File"><a href="/wiki/File:CPT-Hashing-File-Transmission.svg" class="mw-file-description" title="Diagram showing use of MD5 hashing in file transmission"><img alt="Diagram showing use of MD5 hashing in file transmission" src="//upload.wikimedia.org/wikipedia/commons/thumb/c/c8/CPT-Hashing-File-Transmission.svg/350px-CPT-Hashing-File-Transmission.svg.png" decoding="async" width="350" height="387" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/c/c8/CPT-Hashing-File-Transmission.svg/525px-CPT-Hashing-File-Transmission.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/c/c8/CPT-Hashing-File-Transmission.svg/700px-CPT-Hashing-File-Transmission.svg.png 2x" data-file-width="281" data-file-height="311" /></a><figcaption>Diagram showing use of MD5 hashing in file transmission</figcaption></figure> <p>As it is easy to generate MD5 collisions, it is possible for the person who created the file to create a second file with the same checksum, so this technique cannot protect against some forms of malicious tampering. In some cases, the checksum cannot be trusted (for example, if it was obtained over the same channel as the downloaded file), in which case MD5 can only provide error-checking functionality: it will recognize a corrupt or incomplete download, which becomes more likely when downloading larger files. </p><p>Historically, MD5 has been used to store a one-way hash of a <a href="/wiki/Password#Form_of_stored_passwords" title="Password">password</a>, often with <a href="/wiki/Key_stretching" title="Key stretching">key stretching</a>.<sup id="cite_ref-49" class="reference"><a href="#cite_note-49"><span class="cite-bracket">[</span>49<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-50" class="reference"><a href="#cite_note-50"><span class="cite-bracket">[</span>50<span class="cite-bracket">]</span></a></sup> NIST does not include MD5 in their list of recommended hashes for password storage.<sup id="cite_ref-51" class="reference"><a href="#cite_note-51"><span class="cite-bracket">[</span>51<span class="cite-bracket">]</span></a></sup> </p><p>MD5 is also used in the field of <a href="/wiki/Electronic_discovery" title="Electronic discovery">electronic discovery</a>, to provide a unique identifier for each document that is exchanged during the legal discovery process. This method can be used to replace the <a href="/wiki/Bates_numbering" title="Bates numbering">Bates stamp</a> numbering system that has been used for decades during the exchange of paper documents. As above, this usage should be discouraged due to the ease of collision attacks. </p> <div class="mw-heading mw-heading2"><h2 id="Algorithm">Algorithm</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=MD5&action=edit&section=7" title="Edit section: Algorithm"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <figure class="mw-halign-right" typeof="mw:File/Thumb"><a href="/wiki/File:MD5_algorithm.svg" class="mw-file-description"><img src="//upload.wikimedia.org/wikipedia/commons/thumb/a/a5/MD5_algorithm.svg/300px-MD5_algorithm.svg.png" decoding="async" width="300" height="330" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/a/a5/MD5_algorithm.svg/450px-MD5_algorithm.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/a/a5/MD5_algorithm.svg/600px-MD5_algorithm.svg.png 2x" data-file-width="800" data-file-height="879" /></a><figcaption>Figure 1. One MD5 operation. MD5 consists of 64 of these operations, grouped in four rounds of 16 operations. <span class="texhtml mvar" style="font-style:italic;">F</span> is a nonlinear function; one function is used in each round. <span class="texhtml"><i>M</i><sub><i>i</i></sub></span> denotes a 32-bit block of the message input, and <span class="texhtml"><i>K</i><sub><i>i</i></sub></span> denotes a 32-bit constant, different for each operation. <span class="texhtml"><<<<sub><i>s</i></sub></span> denotes a left bit rotation by <span class="texhtml mvar" style="font-style:italic;">s</span> places; <span class="texhtml mvar" style="font-style:italic;">s</span> varies for each operation. <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 \boxplus }"> <semantics> <mrow class="MJX-TeXAtom-ORD"> <mstyle displaystyle="true" scriptlevel="0"> <mo>⊞<!-- ⊞ --></mo> </mstyle> </mrow> <annotation encoding="application/x-tex">{\displaystyle \boxplus }</annotation> </semantics> </math></span><img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/6322d15aa026860a63afe3de043802be68320f55" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:1.808ex; height:2.176ex;" alt="{\displaystyle \boxplus }"></span> denotes addition modulo 2<sup>32</sup>.</figcaption></figure> <p>MD5 processes a variable-length message into a fixed-length output of 128 bits. The input message is broken up into chunks of 512-bit blocks (sixteen 32-bit words); the message is <a href="/wiki/Padding_(cryptography)" title="Padding (cryptography)">padded</a> so that its length is divisible by 512. The padding works as follows: first, a single bit, 1, is appended to the end of the message. This is followed by as many zeros as are required to bring the length of the message up to 64 bits fewer than a multiple of 512. The remaining bits are filled up with 64 bits representing the length of the original message, modulo 2<sup>64</sup>. </p><p>The main MD5 algorithm operates on a 128-bit state, divided into four 32-bit words, denoted <span class="texhtml mvar" style="font-style:italic;">A</span>, <span class="texhtml mvar" style="font-style:italic;">B</span>, <span class="texhtml mvar" style="font-style:italic;">C</span>, and <span class="texhtml mvar" style="font-style:italic;">D</span>. These are initialized to certain fixed constants. The main algorithm then uses each 512-bit message block in turn to modify the state. The processing of a message block consists of four similar stages, termed <i>rounds</i>; each round is composed of 16 similar operations based on a non-linear function <span class="texhtml mvar" style="font-style:italic;">F</span>, modular addition, and left rotation. Figure 1 illustrates one operation within a round. There are four possible functions; a different one is used in each round: </p> <dl><dd><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 {\begin{aligned}F(B,C,D)&=(B\wedge {C})\vee (\neg {B}\wedge {D})\\G(B,C,D)&=(B\wedge {D})\vee (C\wedge \neg {D})\\H(B,C,D)&=B\oplus C\oplus D\\I(B,C,D)&=C\oplus (B\vee \neg {D})\end{aligned}}}"> <semantics> <mrow class="MJX-TeXAtom-ORD"> <mstyle displaystyle="true" scriptlevel="0"> <mrow class="MJX-TeXAtom-ORD"> <mtable columnalign="right left right left right left right left right left right left" rowspacing="3pt" columnspacing="0em 2em 0em 2em 0em 2em 0em 2em 0em 2em 0em" displaystyle="true"> <mtr> <mtd> <mi>F</mi> <mo stretchy="false">(</mo> <mi>B</mi> <mo>,</mo> <mi>C</mi> <mo>,</mo> <mi>D</mi> <mo stretchy="false">)</mo> </mtd> <mtd> <mi></mi> <mo>=</mo> <mo stretchy="false">(</mo> <mi>B</mi> <mo>∧<!-- ∧ --></mo> <mrow class="MJX-TeXAtom-ORD"> <mi>C</mi> </mrow> <mo stretchy="false">)</mo> <mo>∨<!-- ∨ --></mo> <mo stretchy="false">(</mo> <mi mathvariant="normal">¬<!-- ¬ --></mi> <mrow class="MJX-TeXAtom-ORD"> <mi>B</mi> </mrow> <mo>∧<!-- ∧ --></mo> <mrow class="MJX-TeXAtom-ORD"> <mi>D</mi> </mrow> <mo stretchy="false">)</mo> </mtd> </mtr> <mtr> <mtd> <mi>G</mi> <mo stretchy="false">(</mo> <mi>B</mi> <mo>,</mo> <mi>C</mi> <mo>,</mo> <mi>D</mi> <mo stretchy="false">)</mo> </mtd> <mtd> <mi></mi> <mo>=</mo> <mo stretchy="false">(</mo> <mi>B</mi> <mo>∧<!-- ∧ --></mo> <mrow class="MJX-TeXAtom-ORD"> <mi>D</mi> </mrow> <mo stretchy="false">)</mo> <mo>∨<!-- ∨ --></mo> <mo stretchy="false">(</mo> <mi>C</mi> <mo>∧<!-- ∧ --></mo> <mi mathvariant="normal">¬<!-- ¬ --></mi> <mrow class="MJX-TeXAtom-ORD"> <mi>D</mi> </mrow> <mo stretchy="false">)</mo> </mtd> </mtr> <mtr> <mtd> <mi>H</mi> <mo stretchy="false">(</mo> <mi>B</mi> <mo>,</mo> <mi>C</mi> <mo>,</mo> <mi>D</mi> <mo stretchy="false">)</mo> </mtd> <mtd> <mi></mi> <mo>=</mo> <mi>B</mi> <mo>⊕<!-- ⊕ --></mo> <mi>C</mi> <mo>⊕<!-- ⊕ --></mo> <mi>D</mi> </mtd> </mtr> <mtr> <mtd> <mi>I</mi> <mo stretchy="false">(</mo> <mi>B</mi> <mo>,</mo> <mi>C</mi> <mo>,</mo> <mi>D</mi> <mo stretchy="false">)</mo> </mtd> <mtd> <mi></mi> <mo>=</mo> <mi>C</mi> <mo>⊕<!-- ⊕ --></mo> <mo stretchy="false">(</mo> <mi>B</mi> <mo>∨<!-- ∨ --></mo> <mi mathvariant="normal">¬<!-- ¬ --></mi> <mrow class="MJX-TeXAtom-ORD"> <mi>D</mi> </mrow> <mo stretchy="false">)</mo> </mtd> </mtr> </mtable> </mrow> </mstyle> </mrow> <annotation encoding="application/x-tex">{\displaystyle {\begin{aligned}F(B,C,D)&=(B\wedge {C})\vee (\neg {B}\wedge {D})\\G(B,C,D)&=(B\wedge {D})\vee (C\wedge \neg {D})\\H(B,C,D)&=B\oplus C\oplus D\\I(B,C,D)&=C\oplus (B\vee \neg {D})\end{aligned}}}</annotation> </semantics> </math></span><img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/b105d494a376d11f2eefd810082e1944cd8e2dc4" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -5.671ex; width:35.541ex; height:12.509ex;" alt="{\displaystyle {\begin{aligned}F(B,C,D)&=(B\wedge {C})\vee (\neg {B}\wedge {D})\\G(B,C,D)&=(B\wedge {D})\vee (C\wedge \neg {D})\\H(B,C,D)&=B\oplus C\oplus D\\I(B,C,D)&=C\oplus (B\vee \neg {D})\end{aligned}}}"></span></dd></dl> <p><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 \oplus ,\wedge ,\vee ,\neg }"> <semantics> <mrow class="MJX-TeXAtom-ORD"> <mstyle displaystyle="true" scriptlevel="0"> <mo>⊕<!-- ⊕ --></mo> <mo>,</mo> <mo>∧<!-- ∧ --></mo> <mo>,</mo> <mo>∨<!-- ∨ --></mo> <mo>,</mo> <mi mathvariant="normal">¬<!-- ¬ --></mi> </mstyle> </mrow> <annotation encoding="application/x-tex">{\displaystyle \oplus ,\wedge ,\vee ,\neg }</annotation> </semantics> </math></span><img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/ed39414f7a4720bbf82749a9fcd3ebb15220ea72" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.671ex; width:9.561ex; height:2.343ex;" alt="{\displaystyle \oplus ,\wedge ,\vee ,\neg }"></span> denote the <a href="/wiki/XOR" class="mw-redirect" title="XOR">XOR</a>, <a href="/wiki/Logical_conjunction" title="Logical conjunction">AND</a>, <a href="/wiki/Logical_disjunction" title="Logical disjunction">OR</a> and <a href="/wiki/Negation" title="Negation">NOT</a> operations respectively. </p> <div class="mw-heading mw-heading3"><h3 id="Pseudocode">Pseudocode</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=MD5&action=edit&section=8" title="Edit section: Pseudocode"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>The MD5 hash is calculated according to this algorithm.<sup id="cite_ref-52" class="reference"><a href="#cite_note-52"><span class="cite-bracket">[</span>52<span class="cite-bracket">]</span></a></sup> All values are in <a href="/wiki/Endianness" title="Endianness">little-endian</a>. </p> <pre><span style="color:green;">// <i>: All variables are unsigned 32 bit and wrap modulo 2^32 when calculating</i></span> <b>var</b> <i>int</i> s[64], K[64] <b>var</b> <i>int</i> i <span style="color:green;">// <i>s specifies the per-round shift amounts</i></span> s[ 0..15] := { 7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22 } s[16..31] := { 5, 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20 } s[32..47] := { 4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16, 23 } s[48..63] := { 6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21 } <span style="color:green;">// <i>Use binary integer part of the sines of integers (Radians) as constants:</i></span> <b>for</b> i <b>from</b> 0 <b>to</b> 63 <b>do</b> K[i] := floor(2<sup>32</sup> × abs(sin(i + 1))) <b>end for</b> <span style="color:green;">// <i>(Or just use the following precomputed table):</i></span> K[ 0.. 3] := { 0xd76aa478, 0xe8c7b756, 0x242070db, 0xc1bdceee } K[ 4.. 7] := { 0xf57c0faf, 0x4787c62a, 0xa8304613, 0xfd469501 } K[ 8..11] := { 0x698098d8, 0x8b44f7af, 0xffff5bb1, 0x895cd7be } K[12..15] := { 0x6b901122, 0xfd987193, 0xa679438e, 0x49b40821 } K[16..19] := { 0xf61e2562, 0xc040b340, 0x265e5a51, 0xe9b6c7aa } K[20..23] := { 0xd62f105d, 0x02441453, 0xd8a1e681, 0xe7d3fbc8 } K[24..27] := { 0x21e1cde6, 0xc33707d6, 0xf4d50d87, 0x455a14ed } K[28..31] := { 0xa9e3e905, 0xfcefa3f8, 0x676f02d9, 0x8d2a4c8a } K[32..35] := { 0xfffa3942, 0x8771f681, 0x6d9d6122, 0xfde5380c } K[36..39] := { 0xa4beea44, 0x4bdecfa9, 0xf6bb4b60, 0xbebfbc70 } K[40..43] := { 0x289b7ec6, 0xeaa127fa, 0xd4ef3085, 0x04881d05 } K[44..47] := { 0xd9d4d039, 0xe6db99e5, 0x1fa27cf8, 0xc4ac5665 } K[48..51] := { 0xf4292244, 0x432aff97, 0xab9423a7, 0xfc93a039 } K[52..55] := { 0x655b59c3, 0x8f0ccc92, 0xffeff47d, 0x85845dd1 } K[56..59] := { 0x6fa87e4f, 0xfe2ce6e0, 0xa3014314, 0x4e0811a1 } K[60..63] := { 0xf7537e82, 0xbd3af235, 0x2ad7d2bb, 0xeb86d391 } <span style="color:green;">// <i>Initialize variables:</i></span> <b>var</b> <i>int</i> a0 := 0x67452301 <span style="color:green;">// A</span> <b>var</b> <i>int</i> b0 := 0xefcdab89 <span style="color:green;">// B</span> <b>var</b> <i>int</i> c0 := 0x98badcfe <span style="color:green;">// C</span> <b>var</b> <i>int</i> d0 := 0x10325476 <span style="color:green;">// D</span> <span style="color:green;">// <i>Pre-processing: adding a single 1 bit</i></span> <b>append</b> "1" bit <b>to</b> message< // Notice: the input bytes are considered as bit strings, // where the first bit is the most significant bit of the byte.<sup id="cite_ref-53" class="reference"><a href="#cite_note-53"><span class="cite-bracket">[</span>53<span class="cite-bracket">]</span></a></sup> <span style="color:green;">// <i>Pre-processing: padding with zeros</i></span> <b>append</b> "0" bit <b>until</b> message length in bits ≡ 448 (mod 512) <span style="color:green;">// Notice: the two padding steps above are implemented in a simpler way // in implementations that only work with complete bytes: append 0x80 // and pad with 0x00 bytes so that the message length in bytes ≡ 56 (mod 64).</span> <b>append</b> original length in bits <b>mod</b> 2<sup>64</sup> <b>to</b> message <span style="color:green;">// <i>Process the message in successive 512-bit chunks:</i></span> <b>for each</b> <i>512-bit</i> chunk <b>of</b> padded message <b>do</b> break chunk into sixteen 32-bit words M[j], 0 ≤ j ≤ 15 <span style="color:green;"> // <i>Initialize hash value for this chunk:</i></span> <b>var</b> <i>int</i> A := a0 <b>var</b> <i>int</i> B := b0 <b>var</b> <i>int</i> C := c0 <b>var</b> <i>int</i> D := d0 <span style="color:green;"> // <i>Main loop:</i></span> <b>for</b> i <b>from</b> 0 <b>to</b> 63 <b>do</b> <b>var</b> <i>int</i> F, g <b>if</b> 0 ≤ i ≤ 15 <b>then</b> F := (B <b>and</b> C) <b>or</b> ((<b>not</b> B) <b>and</b> D) g := i <b>else if</b> 16 ≤ i ≤ 31 <b>then</b> F := (D <b>and</b> B) <b>or</b> ((<b>not</b> D) <b>and</b> C) g := (5×i + 1) <b>mod</b> 16 <b>else if</b> 32 ≤ i ≤ 47 <b>then</b> F := B <b>xor</b> C <b>xor</b> D g := (3×i + 5) <b>mod</b> 16 <b>else if</b> 48 ≤ i ≤ 63 <b>then</b> F := C <b>xor</b> (B <b>or</b> (<b>not</b> D)) g := (7×i) <b>mod</b> 16 <span style="color:green;"> // <i>Be wary of the below definitions of a,b,c,d</i></span> F := F + A + K[i] + M[g] <span style="color:green;"> // <i>M[g] must be a 32-bit block</i></span> A := D D := C C := B B := B + <b>leftrotate</b>(F, s[i]) <b>end for</b> <span style="color:green;"> // <i>Add this chunk's hash to result so far:</i></span> a0 := a0 + A b0 := b0 + B c0 := c0 + C d0 := d0 + D <b>end for</b> <b>var</b> <i>char</i> digest[16] := a0 <b>append</b> b0 <b>append</b> c0 <b>append</b> d0 <span style="color:green;">// <i>(Output is in little-endian)</i></span> </pre> <p>Instead of the formulation from the original RFC 1321 shown, the following may be used for improved efficiency (useful if assembly language is being used – otherwise, the compiler will generally optimize the above code. Since each computation is dependent on another in these formulations, this is often slower than the above method where the nand/and can be parallelised): </p> <pre>( 0 ≤ i ≤ 15): F := D <b>xor</b> (B <b>and</b> (C <b>xor</b> D)) (16 ≤ i ≤ 31): F := C <b>xor</b> (D <b>and</b> (B <b>xor</b> C)) </pre> <div class="mw-heading mw-heading2"><h2 id="MD5_hashes">MD5 hashes</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=MD5&action=edit&section=9" title="Edit section: MD5 hashes"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>The 128-bit (16-byte) MD5 hashes (also termed <i>message digests</i>) are typically represented as a sequence of 32 <a href="/wiki/Hexadecimal" title="Hexadecimal">hexadecimal</a> digits. The following demonstrates a 43-byte <a href="/wiki/ASCII" title="ASCII">ASCII</a> input and the corresponding MD5 hash: </p> <pre>MD5("<a href="/wiki/The_quick_brown_fox_jumps_over_the_lazy_dog" title="The quick brown fox jumps over the lazy dog">The quick brown fox jumps over the lazy dog</a>") = 9e107d9d372bb6826bd81d3542a419d6 </pre> <p>Even a small change in the message will (with overwhelming probability) result in a mostly different hash, due to the <a href="/wiki/Avalanche_effect" title="Avalanche effect">avalanche effect</a>. For example, adding a period to the end of the sentence: </p> <pre>MD5("<a href="/wiki/The_quick_brown_fox_jumps_over_the_lazy_dog" title="The quick brown fox jumps over the lazy dog">The quick brown fox jumps over the lazy dog</a><span style="background-color: #87CEEB;color:black;"><b>.</b></span>") = e4d909c290d0fb1ca068ffaddf22cbd0 </pre> <p>The hash of the zero-length string is: </p> <pre>MD5("") = d41d8cd98f00b204e9800998ecf8427e </pre> <p>The MD5 algorithm is specified for messages consisting of any number of bits; it is not limited to multiples of eight bits (<a href="/wiki/Octet_(computing)" title="Octet (computing)">octets</a>, <a href="/wiki/Byte" title="Byte">bytes</a>). Some MD5 implementations such as <a href="/wiki/Md5sum" title="Md5sum">md5sum</a> might be limited to octets, or they might not support <i>streaming</i> for messages of an initially undetermined length. </p> <div class="mw-heading mw-heading2"><h2 id="Implementations">Implementations</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=MD5&action=edit&section=10" title="Edit section: Implementations"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Below is a list of cryptography libraries that support MD5: </p> <ul><li><a href="/wiki/Botan_(programming_library)" title="Botan (programming library)">Botan</a></li> <li><a href="/wiki/Bouncy_Castle_(cryptography)" title="Bouncy Castle (cryptography)">Bouncy Castle</a></li> <li><a href="/wiki/Cryptlib" title="Cryptlib">cryptlib</a></li> <li><a href="/wiki/Crypto%2B%2B" title="Crypto++">Crypto++</a></li> <li><a href="/wiki/Libgcrypt" title="Libgcrypt">Libgcrypt</a></li> <li><a href="/wiki/Nettle_(cryptographic_library)" title="Nettle (cryptographic library)">Nettle</a></li> <li><a href="/wiki/OpenSSL" title="OpenSSL">OpenSSL</a></li> <li><a href="/wiki/WolfSSL" title="WolfSSL">wolfSSL</a></li></ul> <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=MD5&action=edit&section=11" title="Edit section: See also"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <ul><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/Hash_function_security_summary" title="Hash function security summary">Hash function security summary</a></li> <li><a href="/wiki/HashClash" title="HashClash">HashClash</a></li> <li><a href="/wiki/Crypt_(C)#MD5-based_scheme" title="Crypt (C)">MD5Crypt</a></li> <li><a href="/wiki/Md5deep" title="Md5deep">md5deep</a></li> <li><a href="/wiki/Md5sum" title="Md5sum">md5sum</a></li> <li><a href="/wiki/MD6" title="MD6">MD6</a></li> <li><a href="/wiki/SHA-1" title="SHA-1">SHA-1</a></li> <li><a href="/wiki/SHA-2" title="SHA-2">SHA-2</a></li></ul> <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=MD5&action=edit&section=12" title="Edit section: References"><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 reflist-columns references-column-width" style="column-width: 30em;"> <ol class="references"> <li id="cite_note-1"><span class="mw-cite-backlink"><b><a href="#cite_ref-1">^</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="CITEREFRivest1992" class="citation cs1"><a href="/wiki/Ron_Rivest" title="Ron Rivest">Rivest, R.</a> (April 1992). <a rel="nofollow" class="external text" href="https://datatracker.ietf.org/doc/html/rfc1321#section-3.4">"Step 4. Process Message in 16-Word Blocks"</a>. <a rel="nofollow" class="external text" href="https://datatracker.ietf.org/doc/html/rfc1321"><i>The MD5 Message-Digest Algorithm</i></a>. <a href="/wiki/Internet_Engineering_Task_Force" title="Internet Engineering Task Force">IETF</a>. p. 5. sec. 3.4. <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.17487%2FRFC1321">10.17487/RFC1321</a></span>. <a href="/wiki/Request_for_Comments" title="Request for Comments">RFC</a> <a rel="nofollow" class="external text" href="https://datatracker.ietf.org/doc/html/rfc1321">1321</a><span class="reference-accessdate">. Retrieved <span class="nowrap">10 October</span> 2018</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=bookitem&rft.atitle=Step+4.+Process+Message+in+16-Word+Blocks&rft.btitle=The+MD5+Message-Digest+Algorithm&rft.pages=p.-5.-sec.-3.4&rft.pub=IETF&rft.date=1992-04&rft_id=info%3Adoi%2F10.17487%2FRFC1321&rft.aulast=Rivest&rft.aufirst=R.&rft_id=https%3A%2F%2Fdatatracker.ietf.org%2Fdoc%2Fhtml%2Frfc1321%26%23035%3Bsection-3.4&rfr_id=info%3Asid%2Fen.wikipedia.org%3AMD5" class="Z3988"></span></span> </li> <li id="cite_note-2"><span class="mw-cite-backlink"><b><a href="#cite_ref-2">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFXie_TaoFanbao_LiuDengguo_Feng2013" class="citation web cs1">Xie Tao; Fanbao Liu; Dengguo Feng (2013). <a rel="nofollow" class="external text" href="https://eprint.iacr.org/2013/170.pdf">"Fast Collision Attack on MD5"</a> <span class="cs1-format">(PDF)</span>. <i>Cryptology ePrint Archive</i>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20210202021701/https://eprint.iacr.org/2013/170.pdf">Archived</a> <span class="cs1-format">(PDF)</span> from the original on 2 February 2021<span class="reference-accessdate">. Retrieved <span class="nowrap">3 December</span> 2013</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=Cryptology+ePrint+Archive&rft.atitle=Fast+Collision+Attack+on+MD5&rft.date=2013&rft.au=Xie+Tao&rft.au=Fanbao+Liu&rft.au=Dengguo+Feng&rft_id=https%3A%2F%2Feprint.iacr.org%2F2013%2F170.pdf&rfr_id=info%3Asid%2Fen.wikipedia.org%3AMD5" class="Z3988"></span></span> </li> <li id="cite_note-Ron_Barak-3"><span class="mw-cite-backlink"><b><a href="#cite_ref-Ron_Barak_3-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFCiampa2009" class="citation book cs1">Ciampa, Mark (2009). <span class="id-lock-registration" title="Free registration required"><a rel="nofollow" class="external text" href="https://archive.org/details/comptiasecurity20000ciam"><i>CompTIA Security+ 2008 in depth</i></a></span>. Australia; United States: Course Technology/Cengage Learning. p. <a rel="nofollow" class="external text" href="https://archive.org/details/comptiasecurity20000ciam/page/290">290</a>. <a href="/wiki/ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <a href="/wiki/Special:BookSources/978-1-59863-913-1" title="Special:BookSources/978-1-59863-913-1"><bdi>978-1-59863-913-1</bdi></a>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.btitle=CompTIA+Security%2B+2008+in+depth&rft.place=Australia%3B+United+States&rft.pages=290&rft.pub=Course+Technology%2FCengage+Learning&rft.date=2009&rft.isbn=978-1-59863-913-1&rft.aulast=Ciampa&rft.aufirst=Mark&rft_id=https%3A%2F%2Farchive.org%2Fdetails%2Fcomptiasecurity20000ciam&rfr_id=info%3Asid%2Fen.wikipedia.org%3AMD5" class="Z3988"></span></span> </li> <li id="cite_note-4"><span class="mw-cite-backlink"><b><a href="#cite_ref-4">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFKleppmann2017" class="citation book cs1">Kleppmann, Martin (2 April 2017). <i>Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems</i> (1 ed.). O'Reilly Media. p. 203. <a href="/wiki/ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <a href="/wiki/Special:BookSources/978-1449373320" title="Special:BookSources/978-1449373320"><bdi>978-1449373320</bdi></a>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.btitle=Designing+Data-Intensive+Applications%3A+The+Big+Ideas+Behind+Reliable%2C+Scalable%2C+and+Maintainable+Systems&rft.pages=203&rft.edition=1&rft.pub=O%27Reilly+Media&rft.date=2017-04-02&rft.isbn=978-1449373320&rft.aulast=Kleppmann&rft.aufirst=Martin&rfr_id=info%3Asid%2Fen.wikipedia.org%3AMD5" class="Z3988"></span></span> </li> <li id="cite_note-autogenerated2-5"><span class="mw-cite-backlink">^ <a href="#cite_ref-autogenerated2_5-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-autogenerated2_5-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text">J. Black, M. Cochran, T. Highland: <a rel="nofollow" class="external text" href="http://www.cs.colorado.edu/~jrblack/papers/md5e-full.pdf">A Study of the MD5 Attacks: Insights and Improvements</a> <a rel="nofollow" class="external text" href="https://web.archive.org/web/20150101093005/http://www.cs.colorado.edu/%7Ejrblack/papers/md5e-full.pdf">Archived</a> 1 January 2015 at the <a href="/wiki/Wayback_Machine" title="Wayback Machine">Wayback Machine</a>, 3 March 2006. Retrieved 27 July 2008.</span> </li> <li id="cite_note-6"><span class="mw-cite-backlink"><b><a href="#cite_ref-6">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFHawkesPaddonRose2004" class="citation journal cs1">Hawkes, Philip; Paddon, Michael; <a href="/wiki/Gregory_G._Rose" title="Gregory G. Rose">Rose, Gregory G.</a> (13 October 2004). <a rel="nofollow" class="external text" href="https://web.archive.org/web/20181105220829/https://eprint.iacr.org/2004/264">"Musings on the Wang et al. MD5 Collision"</a>. <i><a href="/wiki/Cryptology_ePrint_Archive" title="Cryptology ePrint Archive">Cryptology ePrint Archive</a></i>. Archived from <a rel="nofollow" class="external text" href="https://eprint.iacr.org/2004/264">the original</a> on 5 November 2018<span class="reference-accessdate">. Retrieved <span class="nowrap">10 October</span> 2018</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=Musings+on+the+Wang+et+al.+MD5+Collision&rft.date=2004-10-13&rft.aulast=Hawkes&rft.aufirst=Philip&rft.au=Paddon%2C+Michael&rft.au=Rose%2C+Gregory+G.&rft_id=https%3A%2F%2Feprint.iacr.org%2F2004%2F264&rfr_id=info%3Asid%2Fen.wikipedia.org%3AMD5" class="Z3988"></span></span> </li> <li id="cite_note-7"><span class="mw-cite-backlink"><b><a href="#cite_ref-7">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFBishop_Fox2013" class="citation web cs1">Bishop Fox (26 September 2013). <a rel="nofollow" class="external text" href="https://web.archive.org/web/20170426171733/http://www.bishopfox.com/resources/tools/other-free-tools/md4md5-collision-code/">"Fast MD5 and MD4 Collision Generators"</a>. <i>BishopFox</i>. Archived from <a rel="nofollow" class="external text" href="http://www.bishopfox.com/resources/tools/other-free-tools/md4md5-collision-code/">the original</a> on 26 April 2017<span class="reference-accessdate">. Retrieved <span class="nowrap">10 February</span> 2014</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=BishopFox&rft.atitle=Fast+MD5+and+MD4+Collision+Generators&rft.date=2013-09-26&rft.au=Bishop+Fox&rft_id=http%3A%2F%2Fwww.bishopfox.com%2Fresources%2Ftools%2Fother-free-tools%2Fmd4md5-collision-code%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3AMD5" class="Z3988"></span></span> </li> <li id="cite_note-8"><span class="mw-cite-backlink"><b><a href="#cite_ref-8">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFLenstraWangWeger2005" class="citation journal cs1"><a href="/wiki/Arjen_Lenstra" title="Arjen Lenstra">Lenstra, Arjen</a>; <a href="/wiki/Xiaoyun_Wang" class="mw-redirect" title="Xiaoyun Wang">Wang, Xiaoyun</a>; Weger, Benne de (1 March 2005). <a rel="nofollow" class="external text" href="http://eprint.iacr.org/2005/067">"Colliding X.509 Certificates"</a>. <i><a href="/wiki/Cryptology_ePrint_Archive" title="Cryptology ePrint Archive">Cryptology ePrint Archive</a></i>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20170523000238/http://eprint.iacr.org/2005/067">Archived</a> from the original on 23 May 2017<span class="reference-accessdate">. Retrieved <span class="nowrap">10 October</span> 2018</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=Colliding+X.509+Certificates&rft.date=2005-03-01&rft.aulast=Lenstra&rft.aufirst=Arjen&rft.au=Wang%2C+Xiaoyun&rft.au=Weger%2C+Benne+de&rft_id=http%3A%2F%2Feprint.iacr.org%2F2005%2F067&rfr_id=info%3Asid%2Fen.wikipedia.org%3AMD5" class="Z3988"></span></span> </li> <li id="cite_note-9"><span class="mw-cite-backlink"><b><a href="#cite_ref-9">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFKlíma2005" class="citation journal cs1"><a href="/wiki/Vlastimil_Kl%C3%ADma" title="Vlastimil Klíma">Klíma, Vlastimil</a> (5 March 2005). <a rel="nofollow" class="external text" href="http://eprint.iacr.org/2005/075">"Finding MD5 Collisions – a Toy For a Notebook"</a>. <i><a href="/wiki/Cryptology_ePrint_Archive" title="Cryptology ePrint Archive">Cryptology ePrint Archive</a></i>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20170517175404/http://eprint.iacr.org/2005/075">Archived</a> from the original on 17 May 2017<span class="reference-accessdate">. Retrieved <span class="nowrap">10 October</span> 2018</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=Finding+MD5+Collisions+%E2%80%93+a+Toy+For+a+Notebook&rft.date=2005-03-05&rft.aulast=Kl%C3%ADma&rft.aufirst=Vlastimil&rft_id=http%3A%2F%2Feprint.iacr.org%2F2005%2F075&rfr_id=info%3Asid%2Fen.wikipedia.org%3AMD5" class="Z3988"></span></span> </li> <li id="cite_note-10"><span class="mw-cite-backlink"><b><a href="#cite_ref-10">^</a></b></span> <span class="reference-text">Vlastimil Klima: <a rel="nofollow" class="external text" href="http://eprint.iacr.org/2006/105">Tunnels in Hash Functions: MD5 Collisions Within a Minute</a> <a rel="nofollow" class="external text" href="https://web.archive.org/web/20110806052832/http://eprint.iacr.org/2006/105">Archived</a> 6 August 2011 at the <a href="/wiki/Wayback_Machine" title="Wayback Machine">Wayback Machine</a>, Cryptology ePrint Archive Report 2006/105, 18 March 2006, revised 17 April 2006. Retrieved 27 July 2008.</span> </li> <li id="cite_note-11"><span class="mw-cite-backlink"><b><a href="#cite_ref-11">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation magazine cs1"><a rel="nofollow" class="external text" href="https://www.wired.com/dangerroom/2010/07/code-cracked-cyber-command-logos-mystery-solved/">"Code Cracked! Cyber Command Logo Mystery Solved"</a>. <i><a href="/wiki/United_States_Cyber_Command" title="United States Cyber Command">USCYBERCOM</a></i>. <a href="/wiki/Wired_News" class="mw-redirect" title="Wired News">Wired News</a>. 8 July 2010. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20140217212938/http://www.wired.com/dangerroom/2010/07/code-cracked-cyber-command-logos-mystery-solved/">Archived</a> from the original on 17 February 2014<span class="reference-accessdate">. Retrieved <span class="nowrap">29 July</span> 2011</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.jtitle=USCYBERCOM&rft.atitle=Code+Cracked%21+Cyber+Command+Logo+Mystery+Solved&rft.date=2010-07-08&rft_id=https%3A%2F%2Fwww.wired.com%2Fdangerroom%2F2010%2F07%2Fcode-cracked-cyber-command-logos-mystery-solved%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3AMD5" class="Z3988"></span></span> </li> <li id="cite_note-12"><span class="mw-cite-backlink"><b><a href="#cite_ref-12">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFTao_XieDengguo_Feng2010" class="citation web cs1">Tao Xie; Dengguo Feng (2010). <a rel="nofollow" class="external text" href="http://eprint.iacr.org/2010/643">"Construct MD5 Collisions Using Just A Single Block Of Message"</a> <span class="cs1-format">(PDF)</span>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20170514185806/http://eprint.iacr.org/2010/643">Archived</a> from the original on 14 May 2017<span class="reference-accessdate">. Retrieved <span class="nowrap">28 July</span> 2011</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Construct+MD5+Collisions+Using+Just+A+Single+Block+Of+Message&rft.date=2010&rft.au=Tao+Xie&rft.au=Dengguo+Feng&rft_id=http%3A%2F%2Feprint.iacr.org%2F2010%2F643&rfr_id=info%3Asid%2Fen.wikipedia.org%3AMD5" class="Z3988"></span></span> </li> <li id="cite_note-13"><span class="mw-cite-backlink"><b><a href="#cite_ref-13">^</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="http://marc-stevens.nl/research/md5-1block-collision/">"Marc Stevens – Research – Single-block collision attack on MD5"</a>. Marc-stevens.nl. 2012. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20170515070731/http://marc-stevens.nl/research/md5-1block-collision/">Archived</a> from the original on 15 May 2017<span class="reference-accessdate">. Retrieved <span class="nowrap">10 April</span> 2014</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Marc+Stevens+%E2%80%93+Research+%E2%80%93+Single-block+collision+attack+on+MD5&rft.pub=Marc-stevens.nl&rft.date=2012&rft_id=http%3A%2F%2Fmarc-stevens.nl%2Fresearch%2Fmd5-1block-collision%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3AMD5" class="Z3988"></span></span> </li> <li id="cite_note-14"><span class="mw-cite-backlink"><b><a href="#cite_ref-14">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFTurner2011" class="citation journal cs1">Turner, Sean (March 2011). <a rel="nofollow" class="external text" href="https://tools.ietf.org/html/rfc6151">"RFC 6151 – Updated Security Considerations for the MD5 Message-Digest and the HMAC-MD5 Algorithms"</a>. <i>Internet Engineering Task Force</i>. <a href="/wiki/Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.17487%2FRFC6151">10.17487/RFC6151</a>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20170615213134/https://tools.ietf.org/html///rfc6151">Archived</a> from the original on 15 June 2017<span class="reference-accessdate">. Retrieved <span class="nowrap">11 November</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=Internet+Engineering+Task+Force&rft.atitle=RFC+6151+%E2%80%93+Updated+Security+Considerations+for+the+MD5+Message-Digest+and+the+HMAC-MD5+Algorithms&rft.date=2011-03&rft_id=info%3Adoi%2F10.17487%2FRFC6151&rft.aulast=Turner&rft.aufirst=Sean&rft_id=https%3A%2F%2Ftools.ietf.org%2Fhtml%2Frfc6151&rfr_id=info%3Asid%2Fen.wikipedia.org%3AMD5" class="Z3988"></span></span> </li> <li id="cite_note-15"><span class="mw-cite-backlink"><b><a href="#cite_ref-15">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFRivest1992" class="citation journal cs1">Rivest, Ronald L. (April 1992). <a rel="nofollow" class="external text" href="https://tools.ietf.org/html/rfc1321">"RFC 1321 – The MD5 Message-Digest Algorithm"</a>. <i>Internet Engineering Task Force</i>. <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.17487%2FRFC1321">10.17487/RFC1321</a></span>. <a href="/wiki/Hdl_(identifier)" class="mw-redirect" title="Hdl (identifier)">hdl</a>:<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://hdl.handle.net/1721.1%2F149165">1721.1/149165</a></span>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20210409200613/https://tools.ietf.org/html/rfc1321">Archived</a> from the original on 9 April 2021<span class="reference-accessdate">. Retrieved <span class="nowrap">5 October</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=Internet+Engineering+Task+Force&rft.atitle=RFC+1321+%E2%80%93+The+MD5+Message-Digest+Algorithm&rft.date=1992-04&rft_id=info%3Ahdl%2F1721.1%2F149165&rft_id=info%3Adoi%2F10.17487%2FRFC1321&rft.aulast=Rivest&rft.aufirst=Ronald+L.&rft_id=https%3A%2F%2Ftools.ietf.org%2Fhtml%2Frfc1321&rfr_id=info%3Asid%2Fen.wikipedia.org%3AMD5" class="Z3988"></span></span> </li> <li id="cite_note-16"><span class="mw-cite-backlink"><b><a href="#cite_ref-16">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFKrawczykBellareCanetti1997" class="citation journal cs1">Krawczyk, Hugo; Bellare, Mihir; Canetti, Ran (February 1997). <a rel="nofollow" class="external text" href="https://tools.ietf.org/html/rfc2104">"RFC 2104 – HMAC: Keyed-Hashing for Message Authentication"</a>. <i>Internet Engineering Task Force</i>. <a href="/wiki/Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.17487%2FRFC2104">10.17487/RFC2104</a>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20210415003434/https://tools.ietf.org/html/rfc2104">Archived</a> from the original on 15 April 2021<span class="reference-accessdate">. Retrieved <span class="nowrap">5 October</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=Internet+Engineering+Task+Force&rft.atitle=RFC+2104+%E2%80%93+HMAC%3A+Keyed-Hashing+for+Message+Authentication&rft.date=1997-02&rft_id=info%3Adoi%2F10.17487%2FRFC2104&rft.aulast=Krawczyk&rft.aufirst=Hugo&rft.au=Bellare%2C+Mihir&rft.au=Canetti%2C+Ran&rft_id=https%3A%2F%2Ftools.ietf.org%2Fhtml%2Frfc2104&rfr_id=info%3Asid%2Fen.wikipedia.org%3AMD5" class="Z3988"></span></span> </li> <li id="cite_note-17"><span class="mw-cite-backlink"><b><a href="#cite_ref-17">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFChad_R2008" class="citation web cs1">Chad R, Dougherty (31 December 2008). <a rel="nofollow" class="external text" href="https://www.kb.cert.org/vuls/id/836068">"Vulnerability Note VU#836068 MD5 vulnerable to collision attacks"</a>. <i>Vulnerability notes database</i>. CERT Carnegie Mellon University Software Engineering Institute. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20110726144513/http://www.kb.cert.org/vuls/id/836068">Archived</a> from the original on 26 July 2011<span class="reference-accessdate">. Retrieved <span class="nowrap">3 February</span> 2017</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=Vulnerability+notes+database&rft.atitle=Vulnerability+Note+VU%23836068+MD5+vulnerable+to+collision+attacks&rft.date=2008-12-31&rft.aulast=Chad+R&rft.aufirst=Dougherty&rft_id=https%3A%2F%2Fwww.kb.cert.org%2Fvuls%2Fid%2F836068&rfr_id=info%3Asid%2Fen.wikipedia.org%3AMD5" class="Z3988"></span></span> </li> <li id="cite_note-Cimpanu2019-18"><span class="mw-cite-backlink">^ <a href="#cite_ref-Cimpanu2019_18-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-Cimpanu2019_18-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="CITEREFCimpanu" class="citation web cs1">Cimpanu, Catalin. <a rel="nofollow" class="external text" href="https://www.zdnet.com/article/a-quarter-of-major-cmss-use-outdated-md5-as-the-default-password-hashing-scheme/">"A quarter of major CMSs use outdated MD5 as the default password hashing scheme"</a>. <i>ZDNet</i>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20210124103125/https://www.zdnet.com/article/a-quarter-of-major-cmss-use-outdated-md5-as-the-default-password-hashing-scheme/">Archived</a> from the original on 24 January 2021<span class="reference-accessdate">. Retrieved <span class="nowrap">17 June</span> 2019</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=ZDNet&rft.atitle=A+quarter+of+major+CMSs+use+outdated+MD5+as+the+default+password+hashing+scheme&rft.aulast=Cimpanu&rft.aufirst=Catalin&rft_id=https%3A%2F%2Fwww.zdnet.com%2Farticle%2Fa-quarter-of-major-cmss-use-outdated-md5-as-the-default-password-hashing-scheme%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3AMD5" class="Z3988"></span></span> </li> <li id="cite_note-19"><span class="mw-cite-backlink"><b><a href="#cite_ref-19">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFM.M.J._Stevens2007" class="citation thesis cs1">M.M.J. Stevens (June 2007). <a rel="nofollow" class="external text" href="http://www.win.tue.nl/hashclash/On%20Collisions%20for%20MD5%20-%20M.M.J.%20Stevens.pdf"><i>On Collisions for MD5</i></a> <span class="cs1-format">(PDF)</span> (Master's thesis). <a rel="nofollow" class="external text" href="https://web.archive.org/web/20170517115509/http://www.win.tue.nl/hashclash/On%20Collisions%20for%20MD5%20-%20M.M.J.%20Stevens.pdf">Archived</a> <span class="cs1-format">(PDF)</span> from the original on 17 May 2017<span class="reference-accessdate">. Retrieved <span class="nowrap">31 March</span> 2010</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adissertation&rft.title=On+Collisions+for+MD5&rft.degree=Master%27s&rft.date=2007-06&rft.au=M.M.J.+Stevens&rft_id=http%3A%2F%2Fwww.win.tue.nl%2Fhashclash%2FOn%2520Collisions%2520for%2520MD5%2520-%2520M.M.J.%2520Stevens.pdf&rfr_id=info%3Asid%2Fen.wikipedia.org%3AMD5" class="Z3988"></span></span> </li> <li id="cite_note-20"><span class="mw-cite-backlink"><b><a href="#cite_ref-20">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFMarc_StevensArjen_LenstraBenne_de_Weger2009" class="citation web cs1">Marc Stevens; Arjen Lenstra; Benne de Weger (16 June 2009). <a rel="nofollow" class="external text" href="https://web.archive.org/web/20111109092157/https://documents.epfl.ch/users/l/le/lenstra/public/papers/lat.pdf">"Chosen-prefix Collisions for MD5 and Applications"</a> <span class="cs1-format">(PDF)</span>. <i>École Polytechnique Fédérale de Lausanne</i>. Archived from <a rel="nofollow" class="external text" href="https://documents.epfl.ch/users/l/le/lenstra/public/papers/lat.pdf">the original</a> <span class="cs1-format">(PDF)</span> on 9 November 2011<span class="reference-accessdate">. Retrieved <span class="nowrap">31 March</span> 2010</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=%C3%89cole+Polytechnique+F%C3%A9d%C3%A9rale+de+Lausanne&rft.atitle=Chosen-prefix+Collisions+for+MD5+and+Applications&rft.date=2009-06-16&rft.au=Marc+Stevens&rft.au=Arjen+Lenstra&rft.au=Benne+de+Weger&rft_id=https%3A%2F%2Fdocuments.epfl.ch%2Fusers%2Fl%2Fle%2Flenstra%2Fpublic%2Fpapers%2Flat.pdf&rfr_id=info%3Asid%2Fen.wikipedia.org%3AMD5" class="Z3988"></span></span> </li> <li id="cite_note-21"><span class="mw-cite-backlink"><b><a href="#cite_ref-21">^</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="http://bvernoux.free.fr/md5/index.php">"New GPU MD5 cracker cracks more than 200 million hashes per second"</a>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20110511121239/http://bvernoux.free.fr/md5/index.php">Archived</a> from the original on 11 May 2011<span class="reference-accessdate">. Retrieved <span class="nowrap">25 March</span> 2011</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=New+GPU+MD5+cracker+cracks+more+than+200+million+hashes+per+second.&rft_id=http%3A%2F%2Fbvernoux.free.fr%2Fmd5%2Findex.php&rfr_id=info%3Asid%2Fen.wikipedia.org%3AMD5" class="Z3988"></span></span> </li> <li id="cite_note-22"><span class="mw-cite-backlink"><b><a href="#cite_ref-22">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFMagnus_Daum,_Stefan_Lucks" class="citation web cs1">Magnus Daum, <a href="/wiki/Stefan_Lucks" title="Stefan Lucks">Stefan Lucks</a>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20100327141611/http://th.informatik.uni-mannheim.de/people/lucks/HashCollisions/">"Hash Collisions (The Poisoned Message Attack)"</a>. <i><a href="/wiki/Eurocrypt" class="mw-redirect" title="Eurocrypt">Eurocrypt</a> 2005 rump session</i>. Archived from <a rel="nofollow" class="external text" href="http://th.informatik.uni-mannheim.de/People/lucks/HashCollisions/">the original</a> on 27 March 2010.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=Eurocrypt+2005+rump+session&rft.atitle=Hash+Collisions+%28The+Poisoned+Message+Attack%29&rft.au=Magnus+Daum%2C+Stefan+Lucks&rft_id=http%3A%2F%2Fth.informatik.uni-mannheim.de%2FPeople%2Flucks%2FHashCollisions%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3AMD5" class="Z3988"></span></span> </li> <li id="cite_note-special-file-formats-23"><span class="mw-cite-backlink"><b><a href="#cite_ref-special-file-formats_23-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFMax_GebhardtGeorg_IlliesWerner_Schindler2005" class="citation web cs1">Max Gebhardt; Georg Illies; Werner Schindler (31 October 2005). <a rel="nofollow" class="external text" href="https://web.archive.org/web/20080917182949/http://csrc.nist.gov/groups/ST/hash/documents/Illies_NIST_05.pdf">"A Note on the Practical Value of Single Hash Collisions for Special File Formats"</a> <span class="cs1-format">(PDF)</span>. <i>National Institute of Standards and Technology</i>. Archived from <a rel="nofollow" class="external text" href="http://csrc.nist.gov/groups/ST/hash/documents/Illies_NIST_05.pdf">the original</a> <span class="cs1-format">(PDF)</span> on 17 September 2008.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=National+Institute+of+Standards+and+Technology&rft.atitle=A+Note+on+the+Practical+Value+of+Single+Hash+Collisions+for+Special+File+Formats&rft.date=2005-10-31&rft.au=Max+Gebhardt&rft.au=Georg+Illies&rft.au=Werner+Schindler&rft_id=http%3A%2F%2Fcsrc.nist.gov%2Fgroups%2FST%2Fhash%2Fdocuments%2FIllies_NIST_05.pdf&rfr_id=info%3Asid%2Fen.wikipedia.org%3AMD5" class="Z3988"></span></span> </li> <li id="cite_note-sslHarmful-24"><span class="mw-cite-backlink">^ <a href="#cite_ref-sslHarmful_24-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-sslHarmful_24-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-sslHarmful_24-2"><sup><i><b>c</b></i></sup></a> <a href="#cite_ref-sslHarmful_24-3"><sup><i><b>d</b></i></sup></a> <a href="#cite_ref-sslHarmful_24-4"><sup><i><b>e</b></i></sup></a></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFSotirovMarc_StevensJacob_AppelbaumArjen_Lenstra2008" class="citation web cs1">Sotirov, Alexander; Marc Stevens; Jacob Appelbaum; Arjen Lenstra; David Molnar; Dag Arne Osvik; Benne de Weger (30 December 2008). <a rel="nofollow" class="external text" href="http://www.win.tue.nl/hashclash/rogue-ca/">"MD5 considered harmful today"</a>. <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 25 March 2017<span class="reference-accessdate">. Retrieved <span class="nowrap">30 December</span> 2008</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=MD5+considered+harmful+today&rft.date=2008-12-30&rft.aulast=Sotirov&rft.aufirst=Alexander&rft.au=Marc+Stevens&rft.au=Jacob+Appelbaum&rft.au=Arjen+Lenstra&rft.au=David+Molnar&rft.au=Dag+Arne+Osvik&rft.au=Benne+de+Weger&rft_id=http%3A%2F%2Fwww.win.tue.nl%2Fhashclash%2Frogue-ca%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3AMD5" class="Z3988"></span> <a rel="nofollow" class="external text" href="https://events.ccc.de/congress/2008/Fahrplan/events/3023.en.html">Announced</a> <a rel="nofollow" class="external text" href="https://web.archive.org/web/20181116081156/https://events.ccc.de/congress/2008/Fahrplan/events/3023.en.html">Archived</a> 16 November 2018 at the <a href="/wiki/Wayback_Machine" title="Wayback Machine">Wayback Machine</a> at the 25th <a href="/wiki/Chaos_Communication_Congress" title="Chaos Communication Congress">Chaos Communication Congress</a>.</span> </li> <li id="cite_note-25"><span class="mw-cite-backlink"><b><a href="#cite_ref-25">^</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="http://blog.silentsignal.eu/2015/06/10/poisonous-md5-wolves-among-the-sheep/">"Poisonous MD5 – Wolves Among the Sheep | Silent Signal Techblog"</a>. 10 June 2015. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20150610115424/http://blog.silentsignal.eu/2015/06/10/poisonous-md5-wolves-among-the-sheep/">Archived</a> from the original on 10 June 2015<span class="reference-accessdate">. Retrieved <span class="nowrap">10 June</span> 2015</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Poisonous+MD5+%E2%80%93+Wolves+Among+the+Sheep+%7C+Silent+Signal+Techblog&rft.date=2015-06-10&rft_id=http%3A%2F%2Fblog.silentsignal.eu%2F2015%2F06%2F10%2Fpoisonous-md5-wolves-among-the-sheep%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3AMD5" class="Z3988"></span></span> </li> <li id="cite_note-26"><span class="mw-cite-backlink"><b><a href="#cite_ref-26">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFHans_Dobbertin1996" class="citation web cs1">Hans Dobbertin (Summer 1996). <a rel="nofollow" class="external text" href="http://ftp.arnes.si/packages/crypto-tools/rsa.com/cryptobytes/crypto2n2.pdf.gz">"The Status of MD5 After a Recent Attack"</a>. <i>CryptoBytes</i><span class="reference-accessdate">. Retrieved <span class="nowrap">22 October</span> 2013</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=CryptoBytes&rft.atitle=The+Status+of+MD5+After+a+Recent+Attack&rft.ssn=summer&rft.date=1996&rft.au=Hans+Dobbertin&rft_id=http%3A%2F%2Fftp.arnes.si%2Fpackages%2Fcrypto-tools%2Frsa.com%2Fcryptobytes%2Fcrypto2n2.pdf.gz&rfr_id=info%3Asid%2Fen.wikipedia.org%3AMD5" class="Z3988"></span></span> </li> <li id="cite_note-27"><span class="mw-cite-backlink"><b><a href="#cite_ref-27">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFXiaoyun_WangHongbo_Yu2005" class="citation web cs1">Xiaoyun Wang; Hongbo Yu (2005). <a rel="nofollow" class="external text" href="https://web.archive.org/web/20090521024709/http://merlot.usc.edu/csac-f06/papers/Wang05a.pdf">"How to Break MD5 and Other Hash Functions"</a> <span class="cs1-format">(PDF)</span>. <i>Advances in Cryptology – Lecture Notes in Computer Science</i>. pp. 19–35. Archived from <a rel="nofollow" class="external text" href="http://merlot.usc.edu/csac-f06/papers/Wang05a.pdf">the original</a> <span class="cs1-format">(PDF)</span> on 21 May 2009<span class="reference-accessdate">. Retrieved <span class="nowrap">21 December</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=Advances+in+Cryptology+%E2%80%93+Lecture+Notes+in+Computer+Science&rft.atitle=How+to+Break+MD5+and+Other+Hash+Functions&rft.pages=19-35&rft.date=2005&rft.au=Xiaoyun+Wang&rft.au=Hongbo+Yu&rft_id=http%3A%2F%2Fmerlot.usc.edu%2Fcsac-f06%2Fpapers%2FWang05a.pdf&rfr_id=info%3Asid%2Fen.wikipedia.org%3AMD5" class="Z3988"></span></span> </li> <li id="cite_note-autogenerated1-28"><span class="mw-cite-backlink"><b><a href="#cite_ref-autogenerated1_28-0">^</a></b></span> <span class="reference-text">Xiaoyun Wang, Dengguo ,k.,m.,m, HAVAL-128 and <a href="/wiki/RIPEMD" title="RIPEMD">RIPEMD</a>, Cryptology ePrint Archive Report 2004/199, 16 August 2004, revised 17 August 2004. Retrieved 27 July 2008.</span> </li> <li id="cite_note-29"><span class="mw-cite-backlink"><b><a href="#cite_ref-29">^</a></b></span> <span class="reference-text">Marc Stevens, Arjen Lenstra, Benne de Weger: <a rel="nofollow" class="external text" href="http://www.win.tue.nl/hashclash/SoftIntCodeSign/">Vulnerability of software integrity and code signing applications to chosen-prefix collisions for MD5</a> <a rel="nofollow" class="external text" href="https://web.archive.org/web/20071213023720/http://www.win.tue.nl/hashclash/SoftIntCodeSign/">Archived</a> 13 December 2007 at the <a href="/wiki/Wayback_Machine" title="Wayback Machine">Wayback Machine</a>, 30 November 2007. Retrieved 27 July 2008.</span> </li> <li id="cite_note-browserflaw-30"><span class="mw-cite-backlink"><b><a href="#cite_ref-browserflaw_30-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFStray2008" class="citation web cs1">Stray, Jonathan (30 December 2008). <a rel="nofollow" class="external text" href="https://web.archive.org/web/20130828142658/http://news.cnet.com/8301-1009_3-10129693-83.html">"Web browser flaw could put e-commerce security at risk"</a>. <a href="/wiki/CNET.com" class="mw-redirect" title="CNET.com">CNET.com</a>. Archived from <a rel="nofollow" class="external text" href="http://news.cnet.com/8301-1009_3-10129693-83.html">the original</a> on 28 August 2013<span class="reference-accessdate">. Retrieved <span class="nowrap">24 February</span> 2009</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Web+browser+flaw+could+put+e-commerce+security+at+risk&rft.pub=CNET.com&rft.date=2008-12-30&rft.aulast=Stray&rft.aufirst=Jonathan&rft_id=http%3A%2F%2Fnews.cnet.com%2F8301-1009_3-10129693-83.html&rfr_id=info%3Asid%2Fen.wikipedia.org%3AMD5" class="Z3988"></span></span> </li> <li id="cite_note-31"><span class="mw-cite-backlink"><b><a href="#cite_ref-31">^</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="http://www.kb.cert.org/vuls/id/836068">"CERT Vulnerability Note VU#836068"</a>. Kb.cert.org. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20170321141233/http://www.kb.cert.org/vuls/id/836068">Archived</a> from the original on 21 March 2017<span class="reference-accessdate">. Retrieved <span class="nowrap">9 August</span> 2010</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=CERT+Vulnerability+Note+VU%23836068&rft.pub=Kb.cert.org&rft_id=http%3A%2F%2Fwww.kb.cert.org%2Fvuls%2Fid%2F836068&rfr_id=info%3Asid%2Fen.wikipedia.org%3AMD5" class="Z3988"></span></span> </li> <li id="cite_note-32"><span class="mw-cite-backlink"><b><a href="#cite_ref-32">^</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://web.archive.org/web/20110609064344/http://csrc.nist.gov/groups/ST/hash/policy.html">"NIST.gov — Computer Security Division — Computer Security Resource Center"</a>. Csrc.nist.gov. Archived from <a rel="nofollow" class="external text" href="http://csrc.nist.gov/groups/ST/hash/policy.html">the original</a> on 9 June 2011<span class="reference-accessdate">. Retrieved <span class="nowrap">9 August</span> 2010</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=NIST.gov+%E2%80%94+Computer+Security+Division+%E2%80%94+Computer+Security+Resource+Center&rft.pub=Csrc.nist.gov&rft_id=http%3A%2F%2Fcsrc.nist.gov%2Fgroups%2FST%2Fhash%2Fpolicy.html&rfr_id=info%3Asid%2Fen.wikipedia.org%3AMD5" class="Z3988"></span></span> </li> <li id="cite_note-foo-33"><span class="mw-cite-backlink">^ <a href="#cite_ref-foo_33-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-foo_33-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 class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20120608225029/http://blogs.technet.com/b/srd/archive/2012/06/06/more-information-about-the-digital-certificates-used-to-sign-the-flame-malware.aspx">"Flame malware collision attack explained"</a>. Archived from <a rel="nofollow" class="external text" href="http://blogs.technet.com/b/srd/archive/2012/06/06/more-information-about-the-digital-certificates-used-to-sign-the-flame-malware.aspx">the original</a> on 8 June 2012<span class="reference-accessdate">. Retrieved <span class="nowrap">7 June</span> 2012</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Flame+malware+collision+attack+explained&rft_id=http%3A%2F%2Fblogs.technet.com%2Fb%2Fsrd%2Farchive%2F2012%2F06%2F06%2Fmore-information-about-the-digital-certificates-used-to-sign-the-flame-malware.aspx&rfr_id=info%3Asid%2Fen.wikipedia.org%3AMD5" class="Z3988"></span></span> </li> <li id="cite_note-34"><span class="mw-cite-backlink"><b><a href="#cite_ref-34">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFDobbertin1996" class="citation journal cs1">Dobbertin, Hans (Summer 1996). <a rel="nofollow" class="external text" href="ftp://ftp.rsasecurity.com/pub/cryptobytes/crypto2n2.pdf">"The Status of MD5 After a Recent Attack"</a> <span class="cs1-format">(PDF)</span>. <i>RSA Laboratories CryptoBytes</i>. <b>2</b> (2): 1<span class="reference-accessdate">. Retrieved <span class="nowrap">10 August</span> 2010</span>. <q>The presented attack does not yet threaten practical applications of MD5, but it comes rather close. .... [<i><a href="/wiki/Sic" title="Sic">sic</a></i>] in the future MD5 should no longer be implemented... [<i><a href="/wiki/Sic" title="Sic">sic</a></i>] where a collision-resistant hash function is required.</q></cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.jtitle=RSA+Laboratories+CryptoBytes&rft.atitle=The+Status+of+MD5+After+a+Recent+Attack&rft.ssn=summer&rft.volume=2&rft.issue=2&rft.pages=1&rft.date=1996&rft.aulast=Dobbertin&rft.aufirst=Hans&rft_id=ftp%3A%2F%2Fftp.rsasecurity.com%2Fpub%2Fcryptobytes%2Fcrypto2n2.pdf&rfr_id=info%3Asid%2Fen.wikipedia.org%3AMD5" class="Z3988"></span><sup class="noprint Inline-Template"><span style="white-space: nowrap;">[<i><a href="/wiki/Wikipedia:Link_rot" title="Wikipedia:Link rot"><span title=" Dead link tagged February 2020">permanent dead link</span></a></i><span style="visibility:hidden; color:transparent; padding-left:2px">‍</span>]</span></sup></span> </li> <li id="cite_note-35"><span class="mw-cite-backlink"><b><a href="#cite_ref-35">^</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="http://www.schneier.com/blog/archives/2005/06/more_md5_collis.html">"Schneier on Security: More MD5 Collisions"</a>. Schneier.com. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20210411035935/https://www.schneier.com/blog/archives/2005/06/more_md5_collis.html">Archived</a> from the original on 11 April 2021<span class="reference-accessdate">. Retrieved <span class="nowrap">9 August</span> 2010</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Schneier+on+Security%3A+More+MD5+Collisions&rft.pub=Schneier.com&rft_id=http%3A%2F%2Fwww.schneier.com%2Fblog%2Farchives%2F2005%2F06%2Fmore_md5_collis.html&rfr_id=info%3Asid%2Fen.wikipedia.org%3AMD5" class="Z3988"></span></span> </li> <li id="cite_note-36"><span class="mw-cite-backlink"><b><a href="#cite_ref-36">^</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="http://www.win.tue.nl/~bdeweger/CollidingCertificates/">"Colliding X.509 Certificates"</a>. Win.tue.nl. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20170515022608/http://www.win.tue.nl/~bdeweger/CollidingCertificates/">Archived</a> from the original on 15 May 2017<span class="reference-accessdate">. Retrieved <span class="nowrap">9 August</span> 2010</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Colliding+X.509+Certificates&rft.pub=Win.tue.nl&rft_id=http%3A%2F%2Fwww.win.tue.nl%2F~bdeweger%2FCollidingCertificates%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3AMD5" class="Z3988"></span></span> </li> <li id="cite_note-37"><span class="mw-cite-backlink"><b><a href="#cite_ref-37">^</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="http://mail.python.org/pipermail/python-dev/2005-December/058850.html">"[Python-Dev] hashlib — faster md5/sha, adds sha256/512 support"</a>. Mail.python.org. 16 December 2005. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20210506232819/https://mail.python.org/pipermail/python-dev/2005-December/058850.html">Archived</a> from the original on 6 May 2021<span class="reference-accessdate">. Retrieved <span class="nowrap">9 August</span> 2010</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=%5BPython-Dev%26%2393%3B+hashlib+%E2%80%94+faster+md5%2Fsha%2C+adds+sha256%2F512+support&rft.pub=Mail.python.org&rft.date=2005-12-16&rft_id=http%3A%2F%2Fmail.python.org%2Fpipermail%2Fpython-dev%2F2005-December%2F058850.html&rfr_id=info%3Asid%2Fen.wikipedia.org%3AMD5" class="Z3988"></span></span> </li> <li id="cite_note-38"><span class="mw-cite-backlink"><b><a href="#cite_ref-38">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation magazine cs1"><a rel="nofollow" class="external text" href="http://blog.wired.com/27bstroke6/2008/12/berlin.html">"Researchers Use PlayStation Cluster to Forge a Web Skeleton Key"</a>. <i>Wired</i>. 31 December 2008. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20090421023048/http://blog.wired.com/27bstroke6/2008/12/berlin.html">Archived</a> from the original on 21 April 2009<span class="reference-accessdate">. Retrieved <span class="nowrap">31 December</span> 2008</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.jtitle=Wired&rft.atitle=Researchers+Use+PlayStation+Cluster+to+Forge+a+Web+Skeleton+Key&rft.date=2008-12-31&rft_id=http%3A%2F%2Fblog.wired.com%2F27bstroke6%2F2008%2F12%2Fberlin.html&rfr_id=info%3Asid%2Fen.wikipedia.org%3AMD5" class="Z3988"></span></span> </li> <li id="cite_note-39"><span class="mw-cite-backlink"><b><a href="#cite_ref-39">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFCallan2008" class="citation web cs1">Callan, Tim (31 December 2008). <a rel="nofollow" class="external text" href="https://web.archive.org/web/20090116180944/http://blogs.verisign.com/ssl-blog/2008/12/on_md5_vulnerabilities_and_mit.php">"This morning's MD5 attack — resolved"</a>. Verisign. Archived from <a rel="nofollow" class="external text" href="https://blogs.verisign.com/ssl-blog/2008/12/on_md5_vulnerabilities_and_mit.php">the original</a> on 16 January 2009<span class="reference-accessdate">. Retrieved <span class="nowrap">31 December</span> 2008</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=This+morning%27s+MD5+attack+%E2%80%94+resolved&rft.pub=Verisign&rft.date=2008-12-31&rft.aulast=Callan&rft.aufirst=Tim&rft_id=https%3A%2F%2Fblogs.verisign.com%2Fssl-blog%2F2008%2F12%2Fon_md5_vulnerabilities_and_mit.php&rfr_id=info%3Asid%2Fen.wikipedia.org%3AMD5" class="Z3988"></span></span> </li> <li id="cite_note-40"><span class="mw-cite-backlink"><b><a href="#cite_ref-40">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFBruce_Schneier2008" class="citation web cs1">Bruce Schneier (31 December 2008). <a rel="nofollow" class="external text" href="http://www.schneier.com/blog/archives/2008/12/forging_ssl_cer.html">"Forging SSL Certificates"</a>. Schneier on Security. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20201109014745/https://www.schneier.com/blog/archives/2008/12/forging_ssl_cer.html">Archived</a> from the original on 9 November 2020<span class="reference-accessdate">. Retrieved <span class="nowrap">10 April</span> 2014</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Forging+SSL+Certificates&rft.pub=Schneier+on+Security&rft.date=2008-12-31&rft.au=Bruce+Schneier&rft_id=http%3A%2F%2Fwww.schneier.com%2Fblog%2Farchives%2F2008%2F12%2Fforging_ssl_cer.html&rfr_id=info%3Asid%2Fen.wikipedia.org%3AMD5" class="Z3988"></span></span> </li> <li id="cite_note-41"><span class="mw-cite-backlink"><b><a href="#cite_ref-41">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFEric_Rescorla2004" class="citation web cs1">Eric Rescorla (17 August 2004). <a rel="nofollow" class="external text" href="https://web.archive.org/web/20140815234704/http://www.rtfm.com/movabletype/archives/2004_08.html#001055">"A real MD5 collision"</a>. <i>Educated Guesswork (blog)</i>. Archived from <a rel="nofollow" class="external text" href="http://www.rtfm.com/movabletype/archives/2004_08.html#001055">the original</a> on 15 August 2014<span class="reference-accessdate">. Retrieved <span class="nowrap">13 April</span> 2015</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=Educated+Guesswork+%28blog%29&rft.atitle=A+real+MD5+collision&rft.date=2004-08-17&rft.au=Eric+Rescorla&rft_id=http%3A%2F%2Fwww.rtfm.com%2Fmovabletype%2Farchives%2F2004_08.html%23001055&rfr_id=info%3Asid%2Fen.wikipedia.org%3AMD5" class="Z3988"></span></span> </li> <li id="cite_note-42"><span class="mw-cite-backlink"><b><a href="#cite_ref-42">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFAnton_A._Kuznetsov" class="citation web cs1">Anton A. Kuznetsov. <a rel="nofollow" class="external text" href="http://eprint.iacr.org/2014/871.pdf">"An algorithm for MD5 single-block collision attack using high performance computing cluster"</a> <span class="cs1-format">(PDF)</span>. IACR. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20160604093753/https://eprint.iacr.org/2014/871.pdf">Archived</a> <span class="cs1-format">(PDF)</span> from the original on 4 June 2016<span class="reference-accessdate">. Retrieved <span class="nowrap">3 November</span> 2014</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=An+algorithm+for+MD5+single-block+collision+attack+using+high+performance+computing+cluster&rft.pub=IACR&rft.au=Anton+A.+Kuznetsov&rft_id=http%3A%2F%2Feprint.iacr.org%2F2014%2F871.pdf&rfr_id=info%3Asid%2Fen.wikipedia.org%3AMD5" class="Z3988"></span></span> </li> <li id="cite_note-43"><span class="mw-cite-backlink"><b><a href="#cite_ref-43">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFYu_SasakiKazumaro_Aoki2009" class="citation book cs1">Yu Sasaki; Kazumaro Aoki (16 April 2009). "Finding Preimages in Full MD5 Faster Than Exhaustive Search". <i>Advances in Cryptology - EUROCRYPT 2009</i>. Lecture Notes in Computer Science. Vol. 5479. <a href="/wiki/Springer_Berlin_Heidelberg" class="mw-redirect" title="Springer Berlin Heidelberg">Springer Berlin Heidelberg</a>. pp. 134–152. <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-01001-9_8">10.1007/978-3-642-01001-9_8</a>. <a href="/wiki/ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <a href="/wiki/Special:BookSources/978-3-642-01000-2" title="Special:BookSources/978-3-642-01000-2"><bdi>978-3-642-01000-2</bdi></a>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=bookitem&rft.atitle=Finding+Preimages+in+Full+MD5+Faster+Than+Exhaustive+Search&rft.btitle=Advances+in+Cryptology+-+EUROCRYPT+2009&rft.series=Lecture+Notes+in+Computer+Science&rft.pages=134-152&rft.pub=Springer+Berlin+Heidelberg&rft.date=2009-04-16&rft_id=info%3Adoi%2F10.1007%2F978-3-642-01001-9_8&rft.isbn=978-3-642-01000-2&rft.au=Yu+Sasaki&rft.au=Kazumaro+Aoki&rfr_id=info%3Asid%2Fen.wikipedia.org%3AMD5" class="Z3988"></span></span> </li> <li id="cite_note-44"><span class="mw-cite-backlink"><b><a href="#cite_ref-44">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFMing_Mao_and_Shaohui_Chen_and_Jin_Xu2009" class="citation book cs1">Ming Mao and Shaohui Chen and Jin Xu (2009). "Construction of the Initial Structure for Preimage Attack of MD5". <i>2009 International Conference on Computational Intelligence and Security</i>. Vol. 1. <a href="/wiki/Institute_of_Electrical_and_Electronics_Engineers" title="Institute of Electrical and Electronics Engineers">IEEE</a> Computer Society. pp. 442–445. <a href="/wiki/Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1109%2FCIS.2009.214">10.1109/CIS.2009.214</a>. <a href="/wiki/ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <a href="/wiki/Special:BookSources/978-0-7695-3931-7" title="Special:BookSources/978-0-7695-3931-7"><bdi>978-0-7695-3931-7</bdi></a>. <a href="/wiki/S2CID_(identifier)" class="mw-redirect" title="S2CID (identifier)">S2CID</a> <a rel="nofollow" class="external text" href="https://api.semanticscholar.org/CorpusID:16512325">16512325</a>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=bookitem&rft.atitle=Construction+of+the+Initial+Structure+for+Preimage+Attack+of+MD5&rft.btitle=2009+International+Conference+on+Computational+Intelligence+and+Security&rft.pages=442-445&rft.pub=IEEE+Computer+Society&rft.date=2009&rft_id=https%3A%2F%2Fapi.semanticscholar.org%2FCorpusID%3A16512325%23id-name%3DS2CID&rft_id=info%3Adoi%2F10.1109%2FCIS.2009.214&rft.isbn=978-0-7695-3931-7&rft.au=Ming+Mao+and+Shaohui+Chen+and+Jin+Xu&rfr_id=info%3Asid%2Fen.wikipedia.org%3AMD5" class="Z3988"></span></span> </li> <li id="cite_note-45"><span class="mw-cite-backlink"><b><a href="#cite_ref-45">^</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://answers.microsoft.com/en-us/windows/forum/all/finding-checksum-values-in-windows-10/dbc3c569-4b5a-4967-8810-c25255cdc1fd">"Finding Checksum Values in Windows 10"</a>. Microsoft Community. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20240111185213/https://answers.microsoft.com/en-us/windows/forum/all/finding-checksum-values-in-windows-10/dbc3c569-4b5a-4967-8810-c25255cdc1fd">Archived</a> from the original on 11 January 2024<span class="reference-accessdate">. Retrieved <span class="nowrap">23 November</span> 2023</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Finding+Checksum+Values+in+Windows+10&rft.pub=Microsoft+Community&rft_id=https%3A%2F%2Fanswers.microsoft.com%2Fen-us%2Fwindows%2Fforum%2Fall%2Ffinding-checksum-values-in-windows-10%2Fdbc3c569-4b5a-4967-8810-c25255cdc1fd&rfr_id=info%3Asid%2Fen.wikipedia.org%3AMD5" class="Z3988"></span></span> </li> <li id="cite_note-46"><span class="mw-cite-backlink"><b><a href="#cite_ref-46">^</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://learn.microsoft.com/en-us/windows-server/administration/windows-commands/certutil">"certutil"</a>. <i>certutil</i>. Microsoft Learn. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20231123190431/https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/certutil">Archived</a> from the original on 23 November 2023<span class="reference-accessdate">. Retrieved <span class="nowrap">23 November</span> 2023</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=certutil&rft.atitle=certutil&rft_id=https%3A%2F%2Flearn.microsoft.com%2Fen-us%2Fwindows-server%2Fadministration%2Fwindows-commands%2Fcertutil&rfr_id=info%3Asid%2Fen.wikipedia.org%3AMD5" class="Z3988"></span></span> </li> <li id="cite_note-47"><span class="mw-cite-backlink"><b><a href="#cite_ref-47">^</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://support.microsoft.com/kb/841290/en-us">"Availability and description of the File Checksum Integrity Verifier utility"</a>. Microsoft Support. 17 June 2013. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20150215153720/http://support.microsoft.com/kb/841290/en-us">Archived</a> from the original on 15 February 2015<span class="reference-accessdate">. Retrieved <span class="nowrap">10 April</span> 2014</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Availability+and+description+of+the+File+Checksum+Integrity+Verifier+utility&rft.pub=Microsoft+Support&rft.date=2013-06-17&rft_id=https%3A%2F%2Fsupport.microsoft.com%2Fkb%2F841290%2Fen-us&rfr_id=info%3Asid%2Fen.wikipedia.org%3AMD5" class="Z3988"></span></span> </li> <li id="cite_note-48"><span class="mw-cite-backlink"><b><a href="#cite_ref-48">^</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://support.microsoft.com/kb/889768/en-us">"How to compute the MD5 or SHA-1 cryptographic hash values for a file"</a>. Microsoft Support. 23 January 2007. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20150309230754/http://support.microsoft.com/kb/889768/en-us">Archived</a> from the original on 9 March 2015<span class="reference-accessdate">. Retrieved <span class="nowrap">10 April</span> 2014</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=How+to+compute+the+MD5+or+SHA-1+cryptographic+hash+values+for+a+file&rft.pub=Microsoft+Support&rft.date=2007-01-23&rft_id=https%3A%2F%2Fsupport.microsoft.com%2Fkb%2F889768%2Fen-us&rfr_id=info%3Asid%2Fen.wikipedia.org%3AMD5" class="Z3988"></span></span> </li> <li id="cite_note-49"><span class="mw-cite-backlink"><b><a href="#cite_ref-49">^</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://www.freebsd.org/cgi/man.cgi?crypt(3)">"FreeBSD Handbook, Security – DES, Blowfish, MD5, and Crypt"</a>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20170218081024/https://www.freebsd.org/cgi/man.cgi?crypt(3)">Archived</a> from the original on 18 February 2017<span class="reference-accessdate">. Retrieved <span class="nowrap">19 October</span> 2014</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=FreeBSD+Handbook%2C+Security+%E2%80%93+DES%2C+Blowfish%2C+MD5%2C+and+Crypt&rft_id=https%3A%2F%2Fwww.freebsd.org%2Fcgi%2Fman.cgi%3Fcrypt%283%29&rfr_id=info%3Asid%2Fen.wikipedia.org%3AMD5" class="Z3988"></span></span> </li> <li id="cite_note-50"><span class="mw-cite-backlink"><b><a href="#cite_ref-50">^</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="http://docs.oracle.com/cd/E26505_01/html/816-5174/policy.conf-4.html">"Synopsis – man pages section 4: File Formats"</a>. Docs.oracle.com. 1 January 2013. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20160304204917/http://docs.oracle.com/cd/E26505_01/html/816-5174/policy.conf-4.html">Archived</a> from the original on 4 March 2016<span class="reference-accessdate">. Retrieved <span class="nowrap">10 April</span> 2014</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Synopsis+%E2%80%93+man+pages+section+4%3A+File+Formats&rft.pub=Docs.oracle.com&rft.date=2013-01-01&rft_id=http%3A%2F%2Fdocs.oracle.com%2Fcd%2FE26505_01%2Fhtml%2F816-5174%2Fpolicy.conf-4.html&rfr_id=info%3Asid%2Fen.wikipedia.org%3AMD5" class="Z3988"></span></span> </li> <li id="cite_note-51"><span class="mw-cite-backlink"><b><a href="#cite_ref-51">^</a></b></span> <span class="reference-text"><a rel="nofollow" class="external text" href="http://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-132.pdf">NIST SP 800-132</a> <a rel="nofollow" class="external text" href="https://web.archive.org/web/20161201044854/http://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-132.pdf">Archived</a> 1 December 2016 at the <a href="/wiki/Wayback_Machine" title="Wayback Machine">Wayback Machine</a> Section 5.1</span> </li> <li id="cite_note-52"><span class="mw-cite-backlink"><b><a href="#cite_ref-52">^</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://referencesource.microsoft.com/#System.Workflow.Runtime/MD5HashHelper.cs,5a97802b6014fccc,references">"Reference Source"</a>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20210621192842/https://referencesource.microsoft.com/#System.Workflow.Runtime/MD5HashHelper.cs,5a97802b6014fccc,references">Archived</a> from the original on 21 June 2021<span class="reference-accessdate">. Retrieved <span class="nowrap">23 December</span> 2020</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Reference+Source&rft_id=https%3A%2F%2Freferencesource.microsoft.com%2F%23System.Workflow.Runtime%2FMD5HashHelper.cs%2C5a97802b6014fccc%2Creferences&rfr_id=info%3Asid%2Fen.wikipedia.org%3AMD5" class="Z3988"></span></span> </li> <li id="cite_note-53"><span class="mw-cite-backlink"><b><a href="#cite_ref-53">^</a></b></span> <span class="reference-text">RFC 1321, section 2, "Terminology and Notation", Page 2.</span> </li> </ol></div> <div class="mw-heading mw-heading2"><h2 id="Further_reading">Further reading</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=MD5&action=edit&section=13" title="Edit section: Further reading"><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="CITEREFBerson1992" class="citation conference cs1">Berson, Thomas A. (1992). "Differential Cryptanalysis Mod 2<sup>32</sup> with Applications to MD5". <i>EUROCRYPT</i>. pp. 71–80. <a href="/wiki/ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <a href="/wiki/Special:BookSources/3-540-56413-6" title="Special:BookSources/3-540-56413-6"><bdi>3-540-56413-6</bdi></a>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=conference&rft.atitle=Differential+Cryptanalysis+Mod+2%3Csup%3E32%3C%2Fsup%3E+with+Applications+to+MD5&rft.btitle=EUROCRYPT&rft.pages=71-80&rft.date=1992&rft.isbn=3-540-56413-6&rft.aulast=Berson&rft.aufirst=Thomas+A.&rfr_id=info%3Asid%2Fen.wikipedia.org%3AMD5" class="Z3988"></span></li> <li><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFBert_den_BoerAntoon_Bosselaers1993" class="citation conference cs1">Bert den Boer; Antoon Bosselaers (1993). "Collisions for the Compression Function of MD5". <i>Advances in Cryptology – EUROCRYPT '93</i>. EUROCRYPT. Berlin; London: Springer. pp. 293–304. <a href="/wiki/ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <a href="/wiki/Special:BookSources/978-3-540-57600-6" title="Special:BookSources/978-3-540-57600-6"><bdi>978-3-540-57600-6</bdi></a>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=conference&rft.atitle=Collisions+for+the+Compression+Function+of+MD5&rft.btitle=Advances+in+Cryptology+%E2%80%93+EUROCRYPT+%2793&rft.place=Berlin%3B+London&rft.pages=293-304&rft.pub=Springer&rft.date=1993&rft.isbn=978-3-540-57600-6&rft.au=Bert+den+Boer&rft.au=Antoon+Bosselaers&rfr_id=info%3Asid%2Fen.wikipedia.org%3AMD5" class="Z3988"></span></li> <li>Hans Dobbertin, Cryptanalysis of MD5 compress. Announcement on Internet, May 1996. <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://citeseer.ist.psu.edu/dobbertin96cryptanalysis.html">"CiteSeerX"</a>. Citeseer.ist.psu.edu. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20080624043846/http://citeseer.ist.psu.edu/dobbertin96cryptanalysis.html">Archived</a> from the original on 24 June 2008<span class="reference-accessdate">. Retrieved <span class="nowrap">9 August</span> 2010</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=CiteSeerX&rft.pub=Citeseer.ist.psu.edu&rft_id=http%3A%2F%2Fciteseer.ist.psu.edu%2Fdobbertin96cryptanalysis.html&rfr_id=info%3Asid%2Fen.wikipedia.org%3AMD5" class="Z3988"></span></li> <li><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFDobbertin1996" class="citation journal cs1">Dobbertin, Hans (1996). <a rel="nofollow" class="external text" href="http://ftp.arnes.si/packages/crypto-tools/rsa.com/cryptobytes/crypto2n2.pdf.gz">"The Status of MD5 After a Recent Attack"</a>. <i>CryptoBytes</i>. <b>2</b> (2).</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.jtitle=CryptoBytes&rft.atitle=The+Status+of+MD5+After+a+Recent+Attack&rft.volume=2&rft.issue=2&rft.date=1996&rft.aulast=Dobbertin&rft.aufirst=Hans&rft_id=http%3A%2F%2Fftp.arnes.si%2Fpackages%2Fcrypto-tools%2Frsa.com%2Fcryptobytes%2Fcrypto2n2.pdf.gz&rfr_id=info%3Asid%2Fen.wikipedia.org%3AMD5" class="Z3988"></span></li> <li><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFXiaoyun_WangHongbo_Yu2005" class="citation conference cs1">Xiaoyun Wang; Hongbo Yu (2005). <a rel="nofollow" class="external text" href="https://web.archive.org/web/20090521001714/http://www.infosec.sdu.edu.cn/uploadfile/papers/How%20to%20Break%20MD5%20and%20Other%20Hash%20Functions.pdf">"How to Break MD5 and Other Hash Functions"</a> <span class="cs1-format">(PDF)</span>. <i>EUROCRYPT</i>. <a href="/wiki/ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <a href="/wiki/Special:BookSources/3-540-25910-4" title="Special:BookSources/3-540-25910-4"><bdi>3-540-25910-4</bdi></a>. Archived from <a rel="nofollow" class="external text" href="http://www.infosec.sdu.edu.cn/uploadfile/papers/How%20to%20Break%20MD5%20and%20Other%20Hash%20Functions.pdf">the original</a> <span class="cs1-format">(PDF)</span> on 21 May 2009<span class="reference-accessdate">. Retrieved <span class="nowrap">6 March</span> 2008</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=conference&rft.atitle=How+to+Break+MD5+and+Other+Hash+Functions&rft.btitle=EUROCRYPT&rft.date=2005&rft.isbn=3-540-25910-4&rft.au=Xiaoyun+Wang&rft.au=Hongbo+Yu&rft_id=http%3A%2F%2Fwww.infosec.sdu.edu.cn%2Fuploadfile%2Fpapers%2FHow%2520to%2520Break%2520MD5%2520and%2520Other%2520Hash%2520Functions.pdf&rfr_id=info%3Asid%2Fen.wikipedia.org%3AMD5" 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=MD5&action=edit&section=14" title="Edit section: External links"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <ul><li><a rel="nofollow" class="external text" href="http://www.w3.org/TR/1998/REC-DSig-label/MD5-1_0">W3C recommendation on MD5</a> <a rel="nofollow" class="external text" href="https://web.archive.org/web/20141228122551/http://www.w3.org/TR/1998/REC-DSig-label/MD5-1_0">Archived</a> 28 December 2014 at the <a href="/wiki/Wayback_Machine" title="Wayback Machine">Wayback Machine</a></li> <li><a rel="nofollow" class="external text" href="https://fe-tool.com/en-us/hash/md5">MD5 Calculator</a> <a rel="nofollow" class="external text" href="https://web.archive.org/web/20221116025344/https://fe-tool.com/en-us/hash/md5">Archived</a> 16 November 2022 at the <a href="/wiki/Wayback_Machine" title="Wayback Machine">Wayback Machine</a></li></ul> <div class="navbox-styles"><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: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"><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><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 href="/wiki/Cryptographic_hash_function" title="Cryptographic hash function">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 class="mw-selflink selflink">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 href="/wiki/Cryptographic_hash_function" title="Cryptographic hash function">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 href="/wiki/Cryptographic_hash_function" title="Cryptographic hash function">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> <!-- NewPP limit report Parsed by mw‐api‐int.codfw.main‐849f99967d‐dznbv Cached time: 20241125044139 Cache expiry: 2592000 Reduced expiry: false Complications: [vary‐revision‐sha1, show‐toc] CPU time usage: 0.853 seconds Real time usage: 1.068 seconds Preprocessor visited node count: 5384/1000000 Post‐expand include size: 193005/2097152 bytes Template argument size: 4173/2097152 bytes Highest expansion depth: 18/100 Expensive parser function count: 5/500 Unstrip recursion depth: 1/20 Unstrip post‐expand size: 195904/5000000 bytes Lua time usage: 0.526/10.000 seconds Lua memory usage: 6923543/52428800 bytes Number of Wikibase entities loaded: 0/400 --> <!-- Transclusion expansion time report (%,ms,calls,template) 100.00% 868.153 1 -total 51.44% 446.567 1 Template:Reflist 28.29% 245.605 4 Template:Navbox 18.85% 163.614 33 Template:Cite_web 13.46% 116.812 1 Template:Cryptography_navbox 12.34% 107.088 1 Template:Cite_IETF 11.07% 96.110 1 Template:Short_description 7.45% 64.687 2 Template:Pagetype 7.07% 61.395 23 Template:Main_other 6.74% 58.536 1 Template:Cryptography_hash --> <!-- Saved in parser cache with key enwiki:pcache:idhash:18826-0!canonical and timestamp 20241125044139 and revision id 1259440343. Rendering was triggered because: api-parse --> </div><!--esi <esi:include src="/esitest-fa8a495983347898/content" /> --><noscript><img src="https://login.wikimedia.org/wiki/Special:CentralAutoLogin/start?type=1x1" 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=MD5&oldid=1259440343">https://en.wikipedia.org/w/index.php?title=MD5&oldid=1259440343</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_hash_functions" title="Category:Cryptographic hash functions">Cryptographic hash functions</a></li><li><a href="/wiki/Category:Broken_hash_functions" title="Category:Broken hash functions">Broken hash functions</a></li><li><a href="/wiki/Category:Checksum_algorithms" title="Category:Checksum algorithms">Checksum algorithms</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:All_articles_with_dead_external_links" title="Category:All articles with dead external links">All articles with dead external links</a></li><li><a href="/wiki/Category:Articles_with_dead_external_links_from_February_2020" title="Category:Articles with dead external links from February 2020">Articles with dead external links from February 2020</a></li><li><a href="/wiki/Category:Articles_with_permanently_dead_external_links" title="Category:Articles with permanently dead external links">Articles with permanently dead external 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_matches_Wikidata" title="Category:Short description matches Wikidata">Short description matches Wikidata</a></li><li><a href="/wiki/Category:Use_dmy_dates_from_April_2014" title="Category:Use dmy dates from April 2014">Use dmy dates from April 2014</a></li><li><a href="/wiki/Category:Articles_containing_potentially_dated_statements_from_2019" title="Category:Articles containing potentially dated statements from 2019">Articles containing potentially dated statements from 2019</a></li><li><a href="/wiki/Category:All_articles_containing_potentially_dated_statements" title="Category:All articles containing potentially dated statements">All articles containing potentially dated statements</a></li><li><a href="/wiki/Category:Articles_with_example_pseudocode" title="Category:Articles with example pseudocode">Articles with example pseudocode</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 25 November 2024, at 04:41<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=MD5&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-f69cdc8f6-fb7ms","wgBackendResponseTime":163,"wgPageParseReport":{"limitreport":{"cputime":"0.853","walltime":"1.068","ppvisitednodes":{"value":5384,"limit":1000000},"postexpandincludesize":{"value":193005,"limit":2097152},"templateargumentsize":{"value":4173,"limit":2097152},"expansiondepth":{"value":18,"limit":100},"expensivefunctioncount":{"value":5,"limit":500},"unstrip-depth":{"value":1,"limit":20},"unstrip-size":{"value":195904,"limit":5000000},"entityaccesscount":{"value":0,"limit":400},"timingprofile":["100.00% 868.153 1 -total"," 51.44% 446.567 1 Template:Reflist"," 28.29% 245.605 4 Template:Navbox"," 18.85% 163.614 33 Template:Cite_web"," 13.46% 116.812 1 Template:Cryptography_navbox"," 12.34% 107.088 1 Template:Cite_IETF"," 11.07% 96.110 1 Template:Short_description"," 7.45% 64.687 2 Template:Pagetype"," 7.07% 61.395 23 Template:Main_other"," 6.74% 58.536 1 Template:Cryptography_hash"]},"scribunto":{"limitreport-timeusage":{"value":"0.526","limit":"10.000"},"limitreport-memusage":{"value":6923543,"limit":52428800}},"cachereport":{"origin":"mw-api-int.codfw.main-849f99967d-dznbv","timestamp":"20241125044139","ttl":2592000,"transientcontent":false}}});});</script> <script type="application/ld+json">{"@context":"https:\/\/schema.org","@type":"Article","name":"MD5","url":"https:\/\/en.wikipedia.org\/wiki\/MD5","sameAs":"http:\/\/www.wikidata.org\/entity\/Q185235","mainEntity":"http:\/\/www.wikidata.org\/entity\/Q185235","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":"2001-02-21T12:45:28Z","dateModified":"2024-11-25T04:41:31Z","headline":"message-digest hashing algorithm"}</script> </body> </html>