implement generate login interface and login
This commit is contained in:
27
src/utils.py
27
src/utils.py
@@ -1,5 +1,6 @@
|
||||
import secrets
|
||||
|
||||
|
||||
def secure_fisher_yates_shuffle(arr: list) -> list:
|
||||
n = len(arr)
|
||||
for i in range(n - 1, 0, -1):
|
||||
@@ -9,21 +10,8 @@ def secure_fisher_yates_shuffle(arr: list) -> list:
|
||||
|
||||
|
||||
def generate_random_nonrepeating_list(list_len: int, min_val: int = 0, max_val: int = 2 ** 16) -> list[int]:
|
||||
assert(max_val-min_val >= list_len)
|
||||
return secure_fisher_yates_shuffle(list(range(min_val, max_val))[:list_len])
|
||||
|
||||
|
||||
def generate_random_nonrepeating_matrix(rows: int, cols: int, min_val: int = 0, max_val: int = 2 ** 16) -> list[list[int]]:
|
||||
values = generate_random_nonrepeating_list(rows*cols, min_val, max_val)
|
||||
matrix = []
|
||||
idx = 0
|
||||
for _ in range(cols):
|
||||
row = []
|
||||
for _ in range(rows):
|
||||
row.append(values[idx])
|
||||
idx += 1
|
||||
matrix.append(row)
|
||||
return matrix
|
||||
assert (max_val - min_val >= list_len)
|
||||
return secure_fisher_yates_shuffle(list(range(min_val, max_val)))[:list_len]
|
||||
|
||||
|
||||
def xor_lists(l1: list[int], l2: list[int]):
|
||||
@@ -31,14 +19,13 @@ def xor_lists(l1: list[int], l2: list[int]):
|
||||
return [l2[i] ^ l1[i] for i in range(len(l1))]
|
||||
|
||||
|
||||
def generate_random_index_interface(height: int, width: int) -> list[int]:
|
||||
return secure_fisher_yates_shuffle([i for i in range(height * width)])
|
||||
|
||||
|
||||
def matrix_to_list(mat: list[list[int]]) -> list[int]:
|
||||
return [val for row in mat for val in row]
|
||||
|
||||
|
||||
def list_to_matrix(lst: list[int], cols: int) -> list[list[int]]:
|
||||
return [lst[i:i+cols] for i in range(0, len(lst), cols)]
|
||||
return [lst[i:i + cols] for i in range(0, len(lst), cols)]
|
||||
|
||||
|
||||
def int_array_to_bytes(int_arr: list[int], byte_size: int = 2) -> bytes:
|
||||
return b"".join([numb.to_bytes(byte_size, byteorder='big') for numb in int_arr])
|
||||
|
||||
Reference in New Issue
Block a user