classical

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: 8 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var Cmd = &cli.Command{
	Category: "Crypto",
	Name:     "classical",
	Usage:    "Classical cryptography",
	Commands: []*cli.Command{

		&cli.Command{
			Category: "Classical",
			Name:     "caesar",
			Usage:    "Caesar Encode",
			Action: func(c *cli.Context) (err error) {
				code, err := utils.ArgOrPipe(c.Args().First())
				if err != nil {
					return err
				}
				r, _ := Caesar(code)
				_, err = fmt.Println(r)
				return
			},
		},

		&cli.Command{
			Category: "Classical",
			Name:     "rot13",
			Usage:    "Rot13 Encode",
			Action: func(c *cli.Context) (err error) {
				code, err := utils.ArgOrPipe(c.Args().First())
				if err != nil {
					return err
				}
				r, _ := Rot13(code)
				_, err = fmt.Println(r)
				return
			},
		},

		&cli.Command{
			Category: "Classical",
			Name:     "atbash",
			Usage:    "Atbash 埃特巴什码",
			Action: func(c *cli.Context) (err error) {
				code, err := utils.ArgOrPipe(c.Args().First())
				if err != nil {
					return err
				}
				r, _ := Atbash(code)
				_, err = fmt.Println(r)
				return
			},
		},

		&cli.Command{
			Category: "Classical",
			Name:     "peigen",
			Usage:    "Peigen 培根密码",
			Action: func(c *cli.Context) (err error) {
				code, err := utils.ArgOrPipe(c.Args().First())
				if err != nil {
					return err
				}
				r, _ := Peigen(code)
				_, err = fmt.Println(r)
				return
			},
		},

		&cli.Command{
			Category: "Classical",
			Name:     "vigenere",
			Usage:    "Vigenere 维吉利亚密码",
			Flags: []cli.Flag{
				&cli.StringFlag{
					Name:    "key",
					Aliases: []string{"k"},
					Usage:   "Vigenere Key",
					Value:   "virzz",
				},
				&cli.StringFlag{
					Name:    "decode",
					Aliases: []string{"d"},
					Usage:   "Decode",
				},
			},
			Action: func(c *cli.Context) (err error) {
				code, err := utils.ArgOrPipe(c.Args().First())
				if err != nil {
					return err
				}
				r, _ := Vigenere(code, c.String("key"), c.Bool("decode"))
				_, err = fmt.Println(r)
				return
			},
		},

		&cli.Command{
			Category: "Classical",
			Name:     "morse",
			Usage:    "Morse Code 摩尔斯电码",
			Flags: []cli.Flag{
				&cli.StringFlag{
					Name:    "sep",
					Aliases: []string{"s"},
					Usage:   "Delimiter 分隔符",
					Value:   "/",
				},
				&cli.StringFlag{
					Name:    "decode",
					Aliases: []string{"d"},
					Usage:   "Decode",
				},
			},
			Action: func(c *cli.Context) (err error) {
				code, err := utils.ArgOrPipe(c.Args().First())
				if err != nil {
					return err
				}
				r, _ := Morse(code, c.Bool("decode"), c.String("sep"))
				_, err = fmt.Println(r)
				return
			},
		},
	},
}
View Source
var (
	// MorseMap 摩斯电码对照表
	MorseMap = map[rune]string{
		'A': ".-", 'B': "-...", 'C': "-.-.", 'D': "-。。", 'E': "。", 'F': "。。-。", 'G': "--。",
		'H': "....", 'I': "..", 'J': ".---", 'K': "-.-", 'L': ".-..", 'M': "--", 'N': "-.",
		'O': "---", 'P': ".--.", 'Q': "--.-", 'R': ".-.", 'S': "...", 'T': "-",
		'U': "..-", 'V': "...-", 'W': ".--", 'X': "-..-", 'Y': "-.--", 'Z': "--..",

		'0': "-----", '1': ".----", '2': "..---", '3': "...--", '4': "....-",
		'5': ".....", '6': "-....", '7': "--...", '8': "---..", '9': "----.",

		'.': ".-.-.-", ':': "---...", ',': "--..--", ';': "-.-.-.", '?': "..--..",
		'=': "-...-", '\'': ".----.", '/': "-..-.", '!': "-.-.--", '-': "-....-",
		'_': "..--.-", '"': ".-..-.", '(': "-.--.", ')': "-.--.-", '$': "...-..-",
		'&': ".-...", '@': ".--.-.",

		0x01: "........",
	}
)

Functions

func Atbash

func Atbash(s string) (string, error)

Atbash 埃特巴什码

func Caesar

func Caesar(s string) (string, error)

Caesar 凯撒密码

func Morse

func Morse(s string, decode bool, sep ...string) (string, error)

Morse 摩斯电码

func Peigen

func Peigen(s string) (string, error)

Peigen 培根密码

func Rot13

func Rot13(s string) (string, error)

Rot13 -

func Vigenere

func Vigenere(src, key string, decode ...bool) (string, error)

Vigenere 维吉利亚密码

Types

This section is empty.

Jump to

Keyboard shortcuts

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