mirror of https://github.com/jumpserver/jumpserver
				
				
				
			
		
			
				
	
	
		
			43 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Python
		
	
	
			
		
		
	
	
			43 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Python
		
	
	
| # -*- coding: utf-8 -*-
 | |
| #
 | |
| import struct
 | |
| import random
 | |
| import socket
 | |
| import string
 | |
| 
 | |
| 
 | |
| string_punctuation = '!#$%&()*+,-.:;<=>?@[]^_~'
 | |
| 
 | |
| 
 | |
| def random_datetime(date_start, date_end):
 | |
|     random_delta = (date_end - date_start) * random.random()
 | |
|     return date_start + random_delta
 | |
| 
 | |
| 
 | |
| def random_ip():
 | |
|     return socket.inet_ntoa(struct.pack('>I', random.randint(1, 0xffffffff)))
 | |
| 
 | |
| 
 | |
| def random_string(length, lower=True, upper=True, digit=True, special_char=False):
 | |
|     chars = string.ascii_letters
 | |
|     if digit:
 | |
|         chars += string.digits
 | |
| 
 | |
|     while True:
 | |
|         password = list(random.choice(chars) for i in range(length))
 | |
|         if upper and not any(c.upper() for c in password):
 | |
|             continue
 | |
|         if lower and not any(c.lower() for c in password):
 | |
|             continue
 | |
|         if digit and not any(c.isdigit() for c in password):
 | |
|             continue
 | |
|         break
 | |
| 
 | |
|     if special_char:
 | |
|         spc = random.choice(string_punctuation)
 | |
|         i = random.choice(range(len(password)))
 | |
|         password[i] = spc
 | |
| 
 | |
|     password = ''.join(password)
 | |
|     return password
 |