From af3104ee3bab7a20cbe6e1dee641a4e339b4ae0b Mon Sep 17 00:00:00 2001 From: c0decave Date: Tue, 4 May 2021 11:33:31 +0200 Subject: [PATCH] add unixtime, jwtoken --- Readme.md | 16 +++++++++++++++ jwtdec.py | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++ utime2date.py | 14 +++++++++++++ 3 files changed, 87 insertions(+) create mode 100755 jwtdec.py create mode 100755 utime2date.py diff --git a/Readme.md b/Readme.md index 7823944..0aad893 100644 --- a/Readme.md +++ b/Readme.md @@ -63,3 +63,19 @@ imap.gmail.com:995,sha1:4259517CD4E48A289D332AB3F0AB52A366322824 imap.gmail.com:995,sha256:D5129635A050F63DD607FFA9271EEFAAB597C0975809765DAD253973FC554D25 imap.gmail.com:995,sha512:4CF1C747DA7F62335273A00328E92B8F3CD9CD2CB5832EF58FDC78DA11E84F245DDE107B5B666F7230B5A705B2E3E9D28BD9B91322EA6267EEE9B55E1737FA6D ``` + +## utime2date + +Simple convert unix time to date + +``` +./utime2date.py 167466789 +``` + +## jwtdec + +Decode JWToken + +``` +./jwtdec.py -t ey... +``` diff --git a/jwtdec.py b/jwtdec.py new file mode 100755 index 0000000..162a31b --- /dev/null +++ b/jwtdec.py @@ -0,0 +1,57 @@ +#!/usr/bin/env python +# You have exactly *one* job: decode jwt token + +import os +import sys +import base64 +import argparse +import pprint + +__tool_name__ = 'jwtdec' +__tool_author__ = 'dash' +__tool_version__ = 'v0.1' +__tool_desc__ = 'simple jwt decode' + +def run(args): + + jwt = args.jwtoken + + if jwt == None: + sys.exit(1) + + dict = {} + splitter = jwt.split('.') + print('Results') + print('-'*7) + + decoded=[] + for item in splitter: + dec = (base64.b64decode(item+'==')) + try: + dec = dec.decode() + except UnicodeDecodeError as e: + dec = base64.b64encode(dec).decode() + decoded.append(dec) + print('-'*7) + print(dec) + + +def main(): + + parser_desc = '{0} by {1} version {2}'.format( + __tool_name__, __tool_author__, __tool_version__) + + prog_desc = parser_desc + parser = argparse.ArgumentParser( + prog=prog_desc, description=__tool_desc__) + + parser.add_argument("-t", "--token", action="store", default=None, + required=True, help='specify jwt token to decode', dest='jwtoken') +# parser.add_argument("-p", "--no-pretty", action="store_false", default=True, +# required=False, help='Do not print pretty', dest='nopretty') + args = parser.parse_args() + run(args) + + +if __name__ == "__main__": + main() diff --git a/utime2date.py b/utime2date.py new file mode 100755 index 0000000..4c05f94 --- /dev/null +++ b/utime2date.py @@ -0,0 +1,14 @@ +#!/usr/bin/env python + +import os +import sys + +unixt = (sys.argv[1]) + + +from datetime import datetime +ts = int(unixt) + +# if you encounter a "year is out of range" error the timestamp +# may be in milliseconds, try `ts /= 1000` in that case +print(datetime.utcfromtimestamp(ts).strftime('%Y-%m-%d %H:%M:%S'))