You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

102 lines
3.1 KiB

12 months ago
  1. # js-md5
  2. [![Build Status](https://travis-ci.org/emn178/js-md5.svg?branch=master)](https://travis-ci.org/emn178/js-md5)
  3. [![Coverage Status](https://coveralls.io/repos/emn178/js-md5/badge.svg?branch=master)](https://coveralls.io/r/emn178/js-md5?branch=master)
  4. [![NPM](https://nodei.co/npm/js-md5.png?stars&downloads)](https://nodei.co/npm/js-md5/)
  5. A simple and fast MD5 hash function for JavaScript supports UTF-8 encoding.
  6. ## Demo
  7. [MD5 Online](http://emn178.github.io/online-tools/md5.html)
  8. [MD5 File Checksum Online](http://emn178.github.io/online-tools/md5_checksum.html)
  9. ## Download
  10. [Compress](https://raw.github.com/emn178/js-md5/master/build/md5.min.js)
  11. [Uncompress](https://raw.github.com/emn178/js-md5/master/src/md5.js)
  12. ## Benchmark
  13. [jsPerf Benchmark](https://jsperf.app/jonuhi)
  14. [File Benchmark](https://github.com/emn178/js-md5/issues/19)
  15. ## Installation
  16. You can also install js-md5 by using Bower.
  17. bower install md5
  18. For node.js, you can use this command to install:
  19. npm install js-md5
  20. ## Notice
  21. `buffer` method is deprecated. This maybe confuse with Buffer in node.js. Please use `arrayBuffer` instead.
  22. ## Usage
  23. You could use like this:
  24. ```JavaScript
  25. md5('Message to hash');
  26. var hash = md5.create();
  27. hash.update('Message to hash');
  28. hash.hex();
  29. // HMAC
  30. md5.hmac('key', 'Message to hash');
  31. var hash = md5.hmac.create('key');
  32. hash.update('Message to hash');
  33. hash.hex();
  34. ```
  35. ### Node.js
  36. If you use node.js, you should require the module first:
  37. ```JavaScript
  38. var md5 = require('js-md5');
  39. ```
  40. ### TypeScript
  41. If you use TypeScript, you can import like this:
  42. ```TypeScript
  43. import { md5 } from 'js-md5';
  44. ```
  45. ## RequireJS
  46. It supports AMD:
  47. ```JavaScript
  48. require(['your/path/md5.js'], function(md5) {
  49. // ...
  50. });
  51. ```
  52. [See document](https://emn178.github.com/js-md5/doc/)
  53. ## Example
  54. ```JavaScript
  55. md5(''); // d41d8cd98f00b204e9800998ecf8427e
  56. md5('The quick brown fox jumps over the lazy dog'); // 9e107d9d372bb6826bd81d3542a419d6
  57. md5('The quick brown fox jumps over the lazy dog.'); // e4d909c290d0fb1ca068ffaddf22cbd0
  58. // It also supports UTF-8 encoding
  59. md5('中文'); // a7bac2239fcdcb3a067903d8077c4a07
  60. // It also supports byte `Array`, `Uint8Array`, `ArrayBuffer`
  61. md5([]); // d41d8cd98f00b204e9800998ecf8427e
  62. md5(new Uint8Array([])); // d41d8cd98f00b204e9800998ecf8427e
  63. // Different output
  64. md5(''); // d41d8cd98f00b204e9800998ecf8427e
  65. md5.hex(''); // d41d8cd98f00b204e9800998ecf8427e
  66. md5.array(''); // [212, 29, 140, 217, 143, 0, 178, 4, 233, 128, 9, 152, 236, 248, 66, 126]
  67. md5.digest(''); // [212, 29, 140, 217, 143, 0, 178, 4, 233, 128, 9, 152, 236, 248, 66, 126]
  68. md5.arrayBuffer(''); // ArrayBuffer
  69. md5.buffer(''); // ArrayBuffer, deprecated, This maybe confuse with Buffer in node.js. Please use arrayBuffer instead.
  70. md5.base64(''); // 1B2M2Y8AsgTpgAmY7PhCfg==
  71. // HMAC
  72. md5.hmac.hex('key', 'Message to hash');
  73. md5.hmac.array('key', 'Message to hash');
  74. // ...
  75. ```
  76. ## License
  77. The project is released under the [MIT license](https://opensource.org/license/mit/).
  78. ## Contact
  79. The project's website is located at https://github.com/emn178/js-md5
  80. Author: Chen, Yi-Cyuan (emn178@gmail.com)