jwttool

package
v0.1.10 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 4, 2023 License: MIT Imports: 10 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var Cmd = &cli.Command{
	Category: "Web",
	Name:     "jwttool",
	Aliases:  []string{"jwt"},
	Usage:    "A jwt tool with Print/Crack/Modify",
	Commands: []*cli.Command{

		{
			Category: "JWT",
			Name:     "jwtp",
			Aliases:  []string{"print", "p"},
			Usage:    "Print jwt pretty",
			Flags: []cli.Flag{
				tokenFlag,
				secretFlag,
			},
			Action: func(c *cli.Context) (err error) {
				token := c.String("token")
				if token == "" {
					if c.NArg() < 1 {
						return fmt.Errorf("invalid arguments")
					}
					token = c.Args().First()
				}
				r, err := JWTPrint(token, c.String("secret"))
				if err != nil {
					return err
				}
				_, err = fmt.Println(r)
				return
			},
		},

		{
			Category: "JWT",
			Name:     "jwtm",
			Aliases:  []string{"modify", "m"},
			Usage:    "Modify jwt",
			Flags: []cli.Flag{
				tokenFlag,
				secretFlag,
				&cli.BoolFlag{
					Name:    "none",
					Aliases: []string{"n"},
					Value:   false,
					Usage:   "Set none method and no signature. (Deprecated)",
				},
				&cli.StringFlag{
					Name:    "method",
					Aliases: []string{"m"},
					Usage:   "Set new method: <HS256|HS384|HS512>",
				},
				&cli.StringMapFlag{
					Name:    "claims",
					Aliases: []string{"c"},
					Usage:   "modify or add claims",
				},
			},
			Action: func(c *cli.Context) (err error) {
				token := c.String("token")
				if token == "" {
					if c.NArg() < 1 {
						return fmt.Errorf("invalid arguments")
					}
					token = c.Args().First()
				}
				r, err := JWTModify(
					token, c.Bool("none"), c.String("secret"),
					c.StringMap("claims"), c.String("method"),
				)
				if err != nil {
					return
				}
				_, err = fmt.Println(r)
				return
			},
		},

		{
			Category: "JWT",
			Name:     "jwtc",
			Aliases:  []string{"crack", "c"},
			Usage:    "Crack jwt",
			Flags: []cli.Flag{
				tokenFlag,
				&cli.StringFlag{
					Name:    "alphabet",
					Aliases: []string{"a"},
					Value:   defaultAlphabet,
					Usage:   "the alphabet for the brute",
				},
				&cli.StringFlag{
					Name:    "prefix",
					Aliases: []string{"p"},
					Usage:   "prefixed to the secret",
				},
				&cli.StringFlag{
					Name:    "suffix",
					Aliases: []string{"s"},
					Usage:   "suffixed to the secret",
				},
				&cli.IntFlag{
					Name:    "minlen",
					Aliases: []string{"m"},
					Usage:   "The min length secret",
				},
				&cli.IntFlag{
					Name:    "maxlen",
					Aliases: []string{"l"},
					Usage:   "The max length secret",
				},
			},
			Action: func(c *cli.Context) (err error) {
				token := c.String("token")
				if token == "" {
					if c.NArg() < 1 {
						return fmt.Errorf("invalid arguments")
					}
					token = c.Args().First()
				}
				r, err := JWTCrack(
					token, c.Int("minlen"), c.Int("maxlen"),
					c.String("alphabet"), c.String("prefix"), c.String("suffix"),
				)
				if err != nil {
					return
				}
				_, err = fmt.Println(r)
				return
			},
		},

		{
			Category: "JWT",
			Name:     "jwtg",
			Aliases:  []string{"generate", "create", "n"},
			Usage:    "Create/Generate jwt",
			Flags: []cli.Flag{
				secretFlag,
				&cli.StringFlag{
					Name:    "method",
					Aliases: []string{"m"},
					Usage:   "Set new method: <HS256|HS384|HS512>",
				},
				&cli.StringMapFlag{
					Name:    "claims",
					Aliases: []string{"c"},
					Usage:   "modify or add  claims/payload",
				},
			},
			Action: func(c *cli.Context) (err error) {
				r, err := JWTCreate(
					c.StringMap("claims"), c.String("method"), c.String("secret"),
				)
				if err != nil {
					return
				}
				_, err = fmt.Println(r)
				return
			},
		},
	},
}

Functions

func JWTCrack added in v0.1.6

func JWTCrack(s string, minLen, maxLen int, alphabet, prefix, suffix string) (string, error)

JWTCrack Crack JWT

func JWTCreate added in v0.1.6

func JWTCreate(claims map[string]string, method string, secret string) (string, error)

JWTCreate - Creat JWT

func JWTModify added in v0.1.6

func JWTModify(s string, none bool, secret string, claims map[string]string, method string) (string, error)

JWTModify Modify JWT

func JWTPrint added in v0.1.6

func JWTPrint(token string, secret ...string) (string, error)

JWTPrint Print JWT

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL