Mercurial > mercurial > hgweb_rsearcher.cgi
comparison go/crypto.go @ 13:f5ffc34f045a
manage DB.
author | pyon@macmini |
---|---|
date | Wed, 14 Nov 2018 19:43:40 +0900 |
parents | e3b10fb860b3 |
children |
comparison
equal
deleted
inserted
replaced
12:240752cbe11b | 13:f5ffc34f045a |
---|---|
1 /* | 1 /* |
2 crypto.go : crypto-program. | 2 crypto.go : crypto-program. |
3 Version : 0.0 | 3 Version : 1.1 |
4 Last Change: 2018-10-19 金 15:58:10. | 4 Last Change: 2018-11-14 水 13:27:48. |
5 | 5 |
6 install to: rsearcher_root/ | 6 install to: rsearcher_root/ |
7 server_root/ | 7 server_root/ |
8 */ | 8 */ |
9 package main | 9 package main |
24 ) | 24 ) |
25 | 25 |
26 var version string | 26 var version string |
27 | 27 |
28 func init() { | 28 func init() { |
29 version = "1.0" | 29 version = "1.1" // output file version |
30 } | 30 } |
31 | 31 |
32 func main() { | 32 func main() { |
33 salt := flag.String( "s", "dummysalt", "salt." ) | 33 salt := flag.String( "s", "dummysalt", "salt." ) |
34 enca := flag.String( "a", "", "encrypt plaintext." ) | 34 enca := flag.String( "a", "", "encrypt plaintext." ) |
37 | 37 |
38 key := flag.String( "k", "1234567890abcdef1234567890abcdef", "key" ) // len = 32 | 38 key := flag.String( "k", "1234567890abcdef1234567890abcdef", "key" ) // len = 32 |
39 encr := flag.String( "e", "", "encrypt hhs." ) | 39 encr := flag.String( "e", "", "encrypt hhs." ) |
40 decr := flag.String( "d", "", "decrypt hhs." ) | 40 decr := flag.String( "d", "", "decrypt hhs." ) |
41 ghhs := flag.String( "f", "", "get hhs info." ) | 41 ghhs := flag.String( "f", "", "get hhs info." ) |
42 | |
43 opf := flag.String( "o", "", "output file." ) | |
42 | 44 |
43 pver := flag.Bool( "v", false, "print version." ) | 45 pver := flag.Bool( "v", false, "print version." ) |
44 | 46 |
45 flag.Parse() | 47 flag.Parse() |
46 | 48 |
136 } | 138 } |
137 | 139 |
138 stream := cipher.NewCTR( block, iv ) | 140 stream := cipher.NewCTR( block, iv ) |
139 stream.XORKeyStream( ciphertext[ aes.BlockSize: ], plaintext ) | 141 stream.XORKeyStream( ciphertext[ aes.BlockSize: ], plaintext ) |
140 | 142 |
141 fmt.Printf( "%s", ciphertext ) | 143 //fmt.Printf( "%s", ciphertext ) |
144 output( *opf, string( ciphertext ) ) | |
142 os.Exit( 0 ) | 145 os.Exit( 0 ) |
143 } | 146 } |
144 | 147 |
145 // decrypt file | 148 // decrypt file |
146 if *decr != "" { | 149 if *decr != "" { |
152 iv := ciphertext[ :aes.BlockSize ] | 155 iv := ciphertext[ :aes.BlockSize ] |
153 plaintext := make( []byte, len( ciphertext[ aes.BlockSize: ] ) ) | 156 plaintext := make( []byte, len( ciphertext[ aes.BlockSize: ] ) ) |
154 stream := cipher.NewCTR( block, iv ) | 157 stream := cipher.NewCTR( block, iv ) |
155 stream.XORKeyStream( plaintext, ciphertext[ aes.BlockSize: ] ) | 158 stream.XORKeyStream( plaintext, ciphertext[ aes.BlockSize: ] ) |
156 | 159 |
157 fmt.Printf( "%s", plaintext ) | 160 //fmt.Printf( "%s", plaintext ) |
161 output( *opf, string( plaintext ) ) | |
158 os.Exit( 0 ) | 162 os.Exit( 0 ) |
159 } | 163 } |
160 | 164 |
161 /* Etc */ | 165 /* Etc */ |
162 if *ghhs != "" { | 166 if *ghhs != "" { |
173 h := sha256.New() | 177 h := sha256.New() |
174 h.Write( []byte( text ) ) | 178 h.Write( []byte( text ) ) |
175 return fmt.Sprintf( "%x", h.Sum( nil ) ) | 179 return fmt.Sprintf( "%x", h.Sum( nil ) ) |
176 } | 180 } |
177 | 181 |
182 /* Output Function */ | |
183 func output( file, str string ) { | |
184 if file == "" { | |
185 fmt.Fprint( os.Stdout, str ) | |
186 } else { | |
187 os.Remove( file ) | |
188 f, err := os.OpenFile( file, os.O_RDWR|os.O_CREATE, 0644 ) | |
189 if err != nil { | |
190 log.Fatal( err ) | |
191 } | |
192 defer f.Close() | |
193 fmt.Fprint( f, str ) | |
194 } | |
195 } | |
196 |