1
1
import { Command , flags } from '@oclif/command'
2
+ import * as CryptoJS from 'crypto-js'
2
3
// @ts -ignore
3
- import * as Hashes from 'jshashes'
4
4
5
5
import Logger from '../utilities/logger'
6
6
import Utilities from '../utilities/utilities'
@@ -12,7 +12,7 @@ export default class Hash extends Command {
12
12
static flags = {
13
13
help : flags . help ( { char : 'h' } ) ,
14
14
// -t , --type for hashing
15
- type : flags . string ( { char : 't' , description : 'type of hash [SHA1(default),MD5,SHA256,SHA512,RMD160]' } ) ,
15
+ type : flags . string ( { char : 't' , description : 'type of hash [SHA1(default), MD5, SHA256, SHA512, RMD160 or RIPEMD160 ]' } ) ,
16
16
string : flags . string ( { char : 's' , description : 'string to be hashed' } ) ,
17
17
file : flags . string ( { char : 'f' , description : 'file to be hashed' } ) ,
18
18
}
@@ -52,22 +52,41 @@ export default class Hash extends Command {
52
52
53
53
private calculateHash ( flags : any , args : any ) {
54
54
const hashObject = this . getHashObject ( flags )
55
- let hashed : string = hashObject . hex ( args . string )
55
+ // @ts -ignore
56
+ let hashed : string = hashObject ( args . string )
56
57
Logger . success ( this , `[${ flags . type . toUpperCase ( ) } ] ${ hashed } ` )
57
58
}
58
59
60
+ // import * as Hashes from 'jshashes'
61
+ // private getHashObjectBCK(flags: any) {
62
+ // switch (flags.type.toUpperCase()) {
63
+ // case 'SHA1':
64
+ // return new Hashes.SHA1()
65
+ // case 'SHA256':
66
+ // return new Hashes.SHA256()
67
+ // case 'SHA512':
68
+ // return new Hashes.SHA512()
69
+ // case 'MD5':
70
+ // return new Hashes.MD5()
71
+ // case 'RMD160':
72
+ // return new Hashes.RMD160()
73
+ // default:
74
+ // Logger.error(this, 'Invalid Or Unsupported hash type')
75
+ // }
76
+ // }
77
+
59
78
private getHashObject ( flags : any ) {
60
79
switch ( flags . type . toUpperCase ( ) ) {
61
80
case 'SHA1' :
62
- return new Hashes . SHA1 ( )
81
+ return CryptoJS . SHA1
63
82
case 'SHA256' :
64
- return new Hashes . SHA256 ( )
83
+ return CryptoJS . SHA256
65
84
case 'SHA512' :
66
- return new Hashes . SHA512 ( )
85
+ return CryptoJS . SHA512
67
86
case 'MD5' :
68
- return new Hashes . MD5 ( )
69
- case 'RMD160' :
70
- return new Hashes . RMD160 ( )
87
+ return CryptoJS . MD5
88
+ case 'RMD160' : case 'RIPEMD160' :
89
+ return CryptoJS . RIPEMD160
71
90
default :
72
91
Logger . error ( this , 'Invalid Or Unsupported hash type' )
73
92
}
0 commit comments