Advertisement
Guest User

Untitled

a guest
Mar 29th, 2017
153
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.64 KB | None | 0 0
  1. #! /usr/bin/env python3
  2.  
  3. # MIT License
  4. #
  5. # Copyright (c) 2017 Bugfender
  6. #
  7. # Permission is hereby granted, free of charge, to any person obtaining a copy
  8. # of this software and associated documentation files (the "Software"), to deal
  9. # in the Software without restriction, including without limitation the rights
  10. # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  11. # copies of the Software, and to permit persons to whom the Software is
  12. # furnished to do so, subject to the following conditions:
  13. #
  14. # The above copyright notice and this permission notice shall be included in all
  15. # copies or substantial portions of the Software.
  16. #
  17. # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  18. # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  19. # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
  20. # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  21. # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
  22. # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  23. # SOFTWARE.
  24.  
  25. import hashlib
  26. import sys
  27.  
  28. def check_hash(log, orig):
  29. # The log entry should be stored in the form of SALT:HASH
  30. salt, hash = log.split(":")
  31. salt = bytearray.fromhex(salt)
  32.  
  33. new_hash = hashlib.pbkdf2_hmac("sha512", orig.encode("utf-8"), salt, 1000, dklen=64).hex()
  34. return new_hash == hash
  35.  
  36. if __name__ == "__main__":
  37. if len(sys.argv) != 3:
  38. print(sys.argv[0] + " SECRET LOG_ENTRY")
  39. sys.exit(1)
  40.  
  41. if check_hash(sys.argv[2], sys.argv[1]):
  42. print("hash matches")
  43. else:
  44. print("hash doesn't match")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement