import
random
from
mnemonic
import
Mnemonic
import
tkinter as tk
from
tkinter
import
ttk, messagebox, scrolledtext
def
generate_mnemonic(count, words_num
=
12
):
mnemonics
=
[]
mnemo
=
Mnemonic(
"english"
)
strength
=
{
12
:
128
,
15
:
160
,
18
:
192
,
21
:
224
,
24
:
256
}
for
_
in
range
(count):
mnemonic
=
mnemo.generate(strength
=
strength.get(words_num,
128
))
mnemonics.append(mnemonic)
return
mnemonics
def
generate_mnemonics_gui():
try
:
count
=
int
(entry_count.get())
words_num
=
int
(combobox_words_num.get())
if
words_num
not
in
[
12
,
15
,
18
,
21
,
24
]:
messagebox.showerror(
"错误"
,
"助记词长度必须是 12, 15, 18, 21 或 24"
)
return
mnemonics
=
generate_mnemonic(count, words_num)
text_output.delete(
1.0
, tk.END)
for
mnemonic
in
mnemonics:
text_output.insert(tk.END, mnemonic
+
"\n\n"
)
except
ValueError:
messagebox.showerror(
"错误"
,
"请输入有效的数字"
)
root
=
tk.Tk()
root.title(
"助记词生成器"
)
root.geometry(
"500x400"
)
root.minsize(
500
,
400
)
label_count
=
tk.Label(root, text
=
"生成数量:"
, width
=
10
, anchor
=
"w"
)
label_count.grid(row
=
0
, column
=
0
, padx
=
5
, pady
=
5
, sticky
=
"w"
)
entry_count
=
tk.Entry(root, width
=
20
)
entry_count.grid(row
=
0
, column
=
1
, padx
=
5
, pady
=
5
, sticky
=
"ew"
)
label_words_num
=
tk.Label(root, text
=
"助记词长度:"
, width
=
10
, anchor
=
"w"
)
label_words_num.grid(row
=
1
, column
=
0
, padx
=
5
, pady
=
5
, sticky
=
"w"
)
combobox_words_num
=
ttk.Combobox(root, values
=
[
12
,
15
,
18
,
21
,
24
], state
=
"readonly"
, width
=
18
)
combobox_words_num.current(
0
)
combobox_words_num.grid(row
=
1
, column
=
1
, padx
=
5
, pady
=
5
, sticky
=
"ew"
)
button_generate
=
tk.Button(root, text
=
"生成助记词"
, command
=
generate_mnemonics_gui, width
=
15
, height
=
4
)
button_generate.grid(row
=
0
, column
=
2
, rowspan
=
2
, padx
=
5
, pady
=
5
, sticky
=
"ns"
)
text_output
=
scrolledtext.ScrolledText(root, wrap
=
tk.WORD)
text_output.grid(row
=
3
, column
=
0
, columnspan
=
3
, padx
=
5
, pady
=
5
, sticky
=
"nsew"
)
root.grid_rowconfigure(
3
, weight
=
1
)
root.grid_columnconfigure(
0
, weight
=
1
)
root.grid_columnconfigure(
1
, weight
=
1
)
root.grid_columnconfigure(
2
, weight
=
1
)
root.mainloop()