{"action":"opened","issue":{"url":"https://api.github.com/repos/dart-lang/crypto/issues/14","labels_url":"https://api.github.com/repos/dart-lang/crypto/issues/14/labels{/name}","comments_url":"https://api.github.com/repos/dart-lang/crypto/issues/14/comments","events_url":"https://api.github.com/repos/dart-lang/crypto/issues/14/events","html_url":"https://github.com/dart-lang/crypto/issues/14","id":106815729,"number":14,"title":"MD5 + hexbytes doesn't match command-line md5 tool","user":{"login":"sethladd","id":5479,"avatar_url":"https://avatars.githubusercontent.com/u/5479?v=3","gravatar_id":"","url":"https://api.github.com/users/sethladd","html_url":"https://github.com/sethladd","followers_url":"https://api.github.com/users/sethladd/followers","following_url":"https://api.github.com/users/sethladd/following{/other_user}","gists_url":"https://api.github.com/users/sethladd/gists{/gist_id}","starred_url":"https://api.github.com/users/sethladd/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sethladd/subscriptions","organizations_url":"https://api.github.com/users/sethladd/orgs","repos_url":"https://api.github.com/users/sethladd/repos","events_url":"https://api.github.com/users/sethladd/events{/privacy}","received_events_url":"https://api.github.com/users/sethladd/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2015-09-16T16:56:53Z","updated_at":"2015-09-16T16:56:53Z","closed_at":null,"body":"This is probably user error, but for tracking:\r\n\r\n```\r\n~/Code/crypto[example*] $ dart example/md5.dart large.txt \r\n398b8e562429a971168e91ecf7117144\r\n~/Code/crypto[example*] $ md5 large.txt \r\nMD5 (large.txt) = b5c667a723a10a3485a33263c4c2b978\r\n```\r\n\r\nExample code:\r\n\r\n```\r\n// Copyright (c) 2015, the Dart project authors.  Please see the AUTHORS file\r\n// for details. All rights reserved. Use of this source code is governed by a\r\n// BSD-style license that can be found in the LICENSE file.\r\n\r\nimport 'dart:io' show exit, File;\r\nimport 'package:crypto/crypto.dart' show MD5, CryptoUtils;\r\n\r\nmain(List<String> args) async {\r\n  if (args == null || args.length != 1) {\r\n    print('Usage: dart md5.dart <input_filename>');\r\n    exit(1);\r\n  }\r\n\r\n  var input = new File(args[0]);\r\n\r\n  if (!input.existsSync()) {\r\n    print('File \"${args[0]}\" does not exist.');\r\n    exit(1);\r\n  }\r\n\r\n  var md5 = new MD5();\r\n\r\n  await for (var bytes in input.openRead()) {\r\n    md5.add(bytes);\r\n  }\r\n\r\n  var hex = CryptoUtils.bytesToHex(md5.close());\r\n\r\n  print(hex);\r\n}\r\n```"}}