def generate_word(reg_exp): limit = 25 word = Xeger(limit=limit) word = word.xeger(reg_exp) while len(word) > 100: limit = limit - 2 word = Xeger(limit=limit) word = word.xeger(reg_exp) return word
def generate_service_reply(self, payloads): random.shuffle(payloads) payload = None x = Xeger(limit=1) for regex in payloads: #payload = rstr.xeger(regex) #payload = exrex.getone(regex) payload = x.xeger(regex) match = re.match(regex, payload) if match: return payload # relax matcher for regex in payloads: payload = x.xeger(regex) match = re.match(regex, payload, re.IGNORECASE | re.MULTILINE) if match: return payload return payload
def test_updateUser_telephone_beginAndEnd_WithSpace_034(): logger = LogGen.loggen() com = common_updateUser_api() logger.info("**************** Test_034: Test updateUser when user sends - telephone begin with space ****************") logger.info("https://rapidmicrobiosystems.jamacloud.com/perspective.req#/testCases/164311?projectId=50") print("**************** Test_034: Test updateUser when user sends - telephone begin with space ****************") print("Jama link is ::https://rapidmicrobiosystems.jamacloud.com/perspective.req#/testCases/164311?projectId=50") # Body list = com.getUsersList() userName = random.choice(list) print("Updating user ::", userName) x = Xeger(limit=20) telephone = com.telephone_RegEx() telephoneNumber=" "+x.xeger(telephone)+" " file = open("./tests_admin/testCases/update_user_api.json", 'r') body = json.loads(file.read()) body['userName'] = userName body['telephoneNumber'] = telephoneNumber com.update_user_negative(body, userName) com.verify_updated_user_from_sm_with_api(userName)
def _make_ids(self, name, field_metadata, length): field_subtype = field_metadata.get('subtype', 'integer') if field_subtype == 'string': regex = field_metadata.get('regex', '[a-z][A-Z]+') xeger = Xeger(limit=10) values = {xeger.xeger(regex) for _ in range(length)} for _ in range(10): done = len(values) if done >= length: break remaining = length - done generate = int(round((remaining / done) * length)) values.update({xeger.xeger(regex) for _ in range(generate)}) else: msg = 'Unable to generate {} unique values for field {} regex "{}"'.format( length, name, regex ) raise ValueError(msg) return pd.Series(list(values)[:length]) else: return pd.Series(np.arange(length))
def emailId_RegEx(self): first = "^([a-zA-Z0-9_\-\.]+)$" last = "^(\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|([a-zA-Z0-9.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$" # emailId = "^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$" x = Xeger(limit=64) before = x.xeger(first) y = Xeger(limit=256) after = y.xeger(last) emailId = before + "@" + after return emailId
def test_createUser_middleInitial_RegEx_039(): logger = LogGen.loggen() com = common_createUser_api() logger.info( "**************** Test_039: Test CreateUser when user sends - MiddleInitial RegEx ****************" ) print( "In Description :Test_039: Test CreateUser when user sends - MiddleInitial RegEx" ) logger.info( "Jama Link :: https://rapidmicrobiosystems.jamacloud.com/perspective.req#/testCases/164308?projectId=50" ) print( "Jama Link :: https://rapidmicrobiosystems.jamacloud.com/perspective.req#/testCases/164308?projectId=50" ) # URL url = ReadConfig.sm() # Additional headers. headers = com.headers() # Body x = Xeger(limit=10) name = com.userName_RegEx() middle = com.middleInitial_RegEx() userName = x.xeger(name) y = Xeger(limit=1) middleInitial = y.xeger(middle) file = open("./tests_admin/testCases/create_user_api.json", 'r') body = json.loads(file.read()) body['middleInitial'] = middleInitial body['userName'] = userName com.create_user_positive(body, userName) com.verify_users_from_sm_with_api(userName) e = com.verify_user_options(userName) assert e['userName'] == userName assert e['firstName'] == 'v' assert e['middleInitial'] == middleInitial assert e['lastName'] == 'j' assert e['emailAddress'] == '*****@*****.**' assert e['telephoneNumber'] == '23' assert e['extension'] == '5309' assert e['password'] == 'Password123' assert e['userRoleName'] == 'Operator' assert e['deactivated'] == False assert e['hidden'] == False assert e['isADUser'] == False print("All the options are matched with the request")
def send_confirmPassword_textbox(self): confirmPassword = self.driver.find_element_by_id(self.textbox_confirmPassword_ID) confirmPassword_value = confirmPassword.get_attribute("value") if (len(confirmPassword_value) == 0): print("\n password Name field is empty") x = Xeger(limit=50) y = x.xeger("^(?=.*[0-9])(?=.*[A-Z]).{8,32}$") self.driver.find_element_by_id(self.textbox_confirmPassword_ID).send_keys(y) print("Entered text in the 'confirmpassword' textbox is ::" + y) self.logger.info("**************** confirmpassword entered ****************") return y else: confirmPassword = self.driver.find_element_by_id(self.textbox_confirmPassword_ID) confirmPassword_value = confirmPassword.get_attribute("value") print("\n Existing confirm_password is :::", confirmPassword_value) x = Xeger(limit=50) y = x.xeger("^(?=.*[0-9])(?=.*[A-Z]).{8,32}$") self.driver.find_element_by_id(self.textbox_confirmPassword_ID).send_keys(y) print("Entered text in the 'confirmpassword' textbox is ::" + y) self.logger.info("**************** confirmpassword entered ****************") return y
def send_username_textbox(self): userName = self.driver.find_element_by_id(self.textbox_Username_ID).text if(len(userName) == 0): print("UserName field is empty") x = Xeger(limit=34) y = x.xeger("^[a-zA-Z0-9]+$") self.driver.find_element_by_id(self.textbox_Username_ID).clear() self.driver.find_element_by_id(self.textbox_Username_ID).send_keys(y) print("Entering 'UserName' ::" + y) self.logger.info("**************** UserName entered ****************") return y else: userid_null = self.driver.find_element_by_id(self.textbox_Username_ID).text print("Username field value is :::", userName) self.driver.find_element_by_id(self.textbox_Username_ID).clear() x = Xeger(limit=34) y = x.xeger("^[a-zA-Z0-9]+$") self.driver.find_element_by_id(self.textbox_Username_ID).send_keys(y) print("Updated 'UserName' is ::" + y) self.logger.info("**************** UserName entered ****************") return y
def send_lastname_textbox(self): lastname = self.driver.find_element_by_id(self.textbox_lastname_ID) lastname_value = lastname.get_attribute("value") if (len(lastname_value) == 0): print("\n lastname Name field is empty") x = Xeger(limit=50) y = x.xeger("^([a-zA-Z '-]+)$") self.driver.find_element_by_id(self.textbox_lastname_ID).clear() self.driver.find_element_by_id(self.textbox_lastname_ID).send_keys(y) print(" Entered text in the 'lastname' textbox is ::" + y) self.logger.info("**************** lastname entered ****************") return y else: lastname = self.driver.find_element_by_id(self.textbox_MiddleInitial_ID) lastname_value = lastname.get_attribute("value") print("\n Existing lastname is :::", lastname_value) x = Xeger(limit=50) y = x.xeger("^([a-zA-Z '-]+)$") self.driver.find_element_by_id(self.textbox_lastname_ID).clear() self.driver.find_element_by_id(self.textbox_lastname_ID).send_keys(y) print("\n Entered text in the 'lastname' textbox is ::" + y) self.logger.info("**************** lastname entered ****************") return y
def send_firstname_textbox(self): firstName = self.driver.find_element_by_id(self.textbox_firstname_ID) firstname_value = firstName.get_attribute("value") if (len(firstname_value) == 0): print("\n First Name field is empty") x = Xeger(limit=50) y = x.xeger("^([a-zA-Z '-]+)$") self.driver.find_element_by_id(self.textbox_firstname_ID).clear() self.driver.find_element_by_id(self.textbox_firstname_ID).send_keys(y) print("Entered text in the 'FirstName' textbox is ::" + y) self.logger.info("**************** FirstName entered ****************") return y else: firstName = self.driver.find_element_by_id(self.textbox_firstname_ID) firstname_value = firstName.get_attribute("value") print("\n Existing Firstname is :::", firstname_value) x = Xeger(limit=50) y = x.xeger("^([a-zA-Z '-]+)$") self.driver.find_element_by_id(self.textbox_Username_ID).clear() self.driver.find_element_by_id(self.textbox_firstname_ID).send_keys(y) print("Entered text in the 'FirstName' textbox is ::" + y) self.logger.info("**************** FirstName entered ****************") return y
def send_middleinitial_textbox(self): middleinitial = self.driver.find_element_by_id(self.textbox_MiddleInitial_ID) middleinitial_value = middleinitial.get_attribute("value") if (len(middleinitial_value) == 0): print("\n MiddleInitial field is empty") x = Xeger(limit=1) y = x.xeger("^([a-zA-Z]+)$") self.driver.find_element_by_id(self.textbox_MiddleInitial_ID).clear() self.driver.find_element_by_id(self.textbox_MiddleInitial_ID).send_keys(y) print(" Entered text in the 'middleinitial' textbox is ::" + y) self.logger.info("**************** middleinitial entered ****************") return y else: middleinitial = self.driver.find_element_by_id(self.textbox_MiddleInitial_ID) middleinitial_value = middleinitial.get_attribute("value") print("\n Existing middleInitial is :::", middleinitial_value) x = Xeger(limit=1) y = x.xeger("^([a-zA-Z]+)$") self.driver.find_element_by_id(self.textbox_MiddleInitial_ID).clear() self.driver.find_element_by_id(self.textbox_MiddleInitial_ID).send_keys(y) print("Entered text in the 'Middle Initial' textbox is ::" + y) self.logger.info("**************** Middle Initial entered ****************") return y
def touch_test_file(line_num, word_num): """创建测试文件,随机生成字符,用于测试""" _x = Xeger() words = lambda: _x.xeger(r'[a-zA-Z][a-zA-Z0-9]*') # 随机生成有效单词 non_word = lambda: _x.xeger(r'\d[a-zA-Z0-9]*') # 随机生成开头为数字的单词 separator = lambda: _x.xeger(r'[^a-zA-Z0-9\n\r]') # 随机生成非字母数字回车换行符的字符 space = lambda: _x.xeger(r'\n[\s]*\n') # 随机生成回车空白字符回车 # 统计生成的文件中字符、单词、有效行、词频 result = { 'chars': 0, 'words': word_num * line_num, 'lines': line_num, 'container': {} } # 创建文件,随机生成字符 file_obj = open(TEMP_FILE, 'w') for _ in range(line_num): for _ in range(word_num): word = words() chars = word + separator() + non_word() + separator() result['chars'] += len(chars) result['container'][word.lower()] = result['container'].get( word.lower(), 0) + 1 file_obj.write(chars) chars = space() result['chars'] += len(chars) file_obj.write(chars) file_obj.close() # 获取排序后的词频结果 sort_result = sorted(result['container'].items(), key=lambda x: (-x[1], x[0]))[:10] result['container'] = sort_result return result
def __init__(self): self.name = Xeger().xeger(r'^[A-Z]{2}\d{3}$')
RANGE = d["Prop2"]["range"] #print(RANGE) DISTRIBUTION = d["Prop2"]["distribution"] if DISTRIBUTION == "gaussian": mu, sigma = 5, 0.5 # mean and standard deviation FLOAT = (np.random.normal(mu, sigma, d["Prop2"]["n"])) FLOAT = FLOAT.tolist() for i in range(TABLE_ROWS - d["Prop2"]["n"]): FLOAT.append('') print(FLOAT) # STRINGS :- x = Xeger(limit=d["Prop3"]["limit"]) STRINGS = [] for i in range(d["Prop3"]["n"]): STRINGS.append(x.xeger(str(d["Prop3"]["matching_regex"][0]))) for i in range(TABLE_ROWS - d["Prop3"]["n"]): STRINGS.append('') print(STRINGS) # Query :- Top k items with maximum element k = d["Prop3"]["k"] Counter = Counter(STRINGS)
from selenium.webdriver.common.by import By from xeger import Xeger URL = "http://192.168.102.50:6433/" #定义URL xeger = Xeger() #登录 public_username_input = By.ID, "username" #登录用户名ID public_password_input = By.ID, "password" #登录密码ID login_button = By.CSS_SELECTOR, ".ant-btn" #登录按钮 #竖向导航栏的功能tab切换 navigation_Tab_ZMJK = By.XPATH, "/html/body/div/section/aside/div/div/ul/li[1]/span" #点击竖向导航栏:闸门监控管理 navigation_Tab_SWJK = By.XPATH, "/html/body/div/section/aside/div/div/ul/li[2]/span" #点击竖向导航栏:水文监控管理 navigation_Tab_RYJK = By.XPATH, "/html/body/div/section/aside/div/div/ul/li[3]/span" #点击竖向导航栏:人员监控管理 navigation_Tab_CBJK = By.XPATH, "/html/body/div/section/aside/div/div/ul/li[4]" #点击竖向导航栏:船舶监控管理 navigation_Tab_LSGJ = By.XPATH, "/html/body/div/section/aside/div/div/ul/li[5]/span" #点击竖向导航栏:历史告警 navigation_Tab_XTSZ = By.XPATH, "/html/body/div/section/aside/div/div/ul/li[6]/span" #点击竖向导航栏:系统设置 navigation_Tab_SXTSZ = By.XPATH, "/html/body/div/section/aside/div/div/ul/li[7]/span" #点击竖向导航栏:摄像头设置 #闸门监控管理-历史数据 history_tab = By.XPATH, ".//*[@id='root']/section/section/main/div/div/div[1]/div/div/div/div/div[1]/div[2]" #历史数据tab history_tab_zmPosition = By.CSS_SELECTOR, "#upDownEnum > div > div" #闸门位置选项 history_tab_zmPosition_WZ = By.CSS_SELECTOR, "li.ant-select-dropdown-menu-item:nth-child(1)" #闸门位置选择二线下游 history_tab_zmJKX = By.CSS_SELECTOR, "#senseType > div > div > div" history_tab_zmJKX_QX = By.XPATH, "/html/body/div[3]/div/div/div/ul/li[3]" #监控项选择倾斜 history_tab_zmBeginTime = By.CSS_SELECTOR, "#beginDateStr > div > input" #选择开始时间点击 history_tab_zmBeginTime_Now = By.LINK_TEXT, "此刻" history_tab_zmSearch_button = By.CSS_SELECTOR, "#root > section > section > main > div > div > div.ant-tabs-content.ant-tabs-content-animated.ant-tabs-top-content > div.ant-tabs-tabpane.ant-tabs-tabpane-active > div.style_historicalContainer__2X1G5 > div.style_search__3u0Ny > form > div:nth-child(6) > div > div > span > button.ant-btn.ant-btn-primary"
def userRolename_characters(self): x = Xeger(limit=34) roleName = x.xeger("^[a-zA-Z0-9]*$") print("\n Trying to create role :::", roleName) return roleName
) for snr in (-8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 10, 20, 40): wpm = 25 tone = 600 write_file( "CQ CQ DE JH1UMV JH1UMV PSE K", "/tmp/dataset/cw-samples/{}dB-{}wpm-{}Hz".format(snr, wpm, tone), maxlength=20, snr=snr, wpm=wpm, tone=tone, use_bandpass=True, ) string_random = Xeger(limit=10).xeger executor = concurrent.futures.ProcessPoolExecutor(max_workers=multiprocessing.cpu_count()) phase_count = 2 snr = (0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 20, 40) wpm = (20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 35, 40) config = list(itertools.product(wpm, snr)) total = phase_count * len(config) * 2 n = 0 for ti, ty in enumerate( ('train', 'test') ): for phase in range(phase_count): for wpm, snr in config: n += 1 init_random_seed(ti << 31 | snr << 24 | wpm << 16 | phase) text = " ".join( string_random('[KMURESNAPTLWI.JZ=FOY,VG5/Q92H38B?47C1D60X]+') for n in range(20) )
def do_draw(self, **kwargs): x = Xeger(limit=self.max_size) if self.pattern and isinstance(self.pattern, str): return x.xeger(self.pattern) return fake.pystr(min_chars=self.min_size, max_chars=self.max_size)
def generate_number(): regex = "([a-z]{1,3}[- ]{0,4}\d{8,13})|([a-z]{1,3}\d{0,3}[- ]{1,4}\d{8,13})|([a-z]{2,3}[- ]{0,4}[\d/]{8,15}$)|([a-z]{2,3}[- ]{0,4}[\d/]{8,15}$)|([a-z]{2,3}[- ]{0,4}[\d/]{8,15})|([a-z]{1,2}\d{,2}[- ]{,2}[\d/]{8,12})|([a-z]{1,2}[- ]{1,3}[\d ]{9,15})|([a-z]{1,2}[\d /]{12,18})|(\d{8,15}$)" x = Xeger(limit=20) randnum = x.xeger(regex) return randnum
from xeger import Xeger from random import * operatorNoPat = "[+-]\\ {0,2}" operatorPat = "\\ {0,2}[+-]\\ {0,2}" multPat = "\\ {0,2}\\*\\ {0,2}" consPat = "[+-]?[1-9][0-9]{0,1}" monoPat = "x( {0,1}\\^ {0,1}[+-]?[1-9])?" leftPat = "\\ {0,2}\\(\\ {0,2}" rightPat = "\\ {0,2}\\)\\ {0,2}" indexPat = "(\\^ {0,1}[+-]?[1-9])?" pat = Xeger(limit=20) nest = 0 # togetherPat = "(" + monoPat + "|" + sinPat + "|" + cosPat + "|" + consPat + ")" # firstPat = "([+-] {0,2}){1,2}" + togetherPat # midPat = "( {0,2}\\* {0,2}" + togetherPat + "){0,3} {0,2}" # termPat = firstPat + midPat def generator(): s = generate_poly() while len(s) > 200: s = generate_poly() return s def generate_poly(): poly = "" operator = randint(0, 1) if operator:
ruleName = '' regexRule = '' if (fullString[:5] == 'match'): clippedMatch = fullString[6:] endRuleName = clippedMatch.find(' ') ruleName = clippedMatch[:endRuleName] ruleStart = clippedMatch.find('m|') regexRule = clippedMatch[ruleStart + 2:] if (fullString[:9] == 'softmatch'): clippedMatch = fullString[10:] endRuleName = clippedMatch.find(' ') ruleName = clippedMatch[:endRuleName] ruleStart = clippedMatch.find('m|') regexRule = clippedMatch[ruleStart + 2:] x = Xeger(limit=10) # default limit = 10 if (ruleName != ''): try: print(ruleName) header = x.xeger(regexRule) if (header == ''): print(regexRule) rule['name'] = ruleName rule['header'] = str(header) serviceRules.append(rule) except: pass out = json.dumps(serviceRules) with open('serviceHeaders.json', 'w') as outfile: outfile.write(out)
class ProbeServer(object): SO_ORIGINAL_DST = 80 max_ports_per_service = 200 BUFFER_SIZE = 256 max_replies = 10 socket_threads = [] ssl_context = None def __init__(self, listen_port, max_ports_per_service, max_replies, create_rules): self.max_replies = max_replies self.max_ports_per_service = max_ports_per_service self.listen_port = listen_port self.sockets = [] self.ports = [] self.fingerprint_to_probes = {} self.port_options = {} self.match_idx = {} self.ssl = None self.rand = SystemRandom() self.create_rules = create_rules self.add_server(listen_port, False, False, '127.0.0.1') self.small_gen = Xeger(limit=80) self.large_gen = Xeger(limit=900) def _add_iptables_rule(self, is_udp, from_port, to_port): subprocess.run([ 'iptables', '-t', 'nat', '-A', 'PREROUTING', '-p', 'udp' if is_udp else 'tcp', '--dport', str(from_port), '-j', 'REDIRECT', '--to-port', str(to_port) ]) def add_from_config(self, port, config): if port == self.listen_port: logging.warning( "Not adding listen port '%s' to list. Cannot spoof and forward to port simultaneously." ) return False if config.has_directive('sslport') and not self.ssl_context: self.ssl_context = SSLContext(PROTOCOL_TLS) self.ssl_context.load_cert_chain('cacert.pem', 'private.key') ssl_ports = config.get_directives('sslport').ports ssl = port in ssl_ports else: ssl = False self.ssl = ssl probe_directive = config.get_directives('probe')[0] is_udp = probe_directive.protocol == 'UDP' if self.create_rules: if which('iptables') is not None: self._add_iptables_rule(is_udp, port, self.listen_port) else: logging.warning( "Unable to automatically forward using iptables. You will need to manually configure your" " firewall to redirect ports to {}".format( self.listen_port)) matches = config.get_directives('match') if not matches: logging.warning("Match directive not found. Skipping!") return False CLAIMED_PORTS.append(port) self.port_options[port] = matches self.match_idx[port] = 0 self.ports.append(port) def add_server(self, port, udp, ssl, hostname): if udp: server = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) else: server = socket.socket(socket.AF_INET, socket.SOCK_STREAM) server.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) if ssl: server = self.ssl_context.wrap_socket(server, server_hostname=hostname) logging.info("Listening on {} port {}".format('UDP' if udp else 'TCP', port)) try: server.bind(("0.0.0.0", port)) except OSError as e: logging.info('Unable to bind to port {}: {}'.format(port, e)) return logging.info("Bound to port {}".format(port)) if not udp: server.listen(32) self.socket_threads.append(server) def run(self): while True: readable_streams, _, _ = select.select(self.socket_threads, [], []) server = readable_streams[0] try: connection, address = server.accept() except OSError: continue except: traceback.print_exc() continue threading.Thread(target=self.handle_client, args=(connection, address)).start() def handle_client(self, client, address): client_reply_map = {} is_udp = client.family == socket.SOCK_DGRAM while True: try: if is_udp: data, _ = client.recvfrom(self.BUFFER_SIZE) else: data = client.recv(self.BUFFER_SIZE) if not data: raise SocketException( 'Client {} disconnected.'.format(address)) dst = client.getsockopt(socket.SOL_IP, self.SO_ORIGINAL_DST, 16) port, srv_ip = struct.unpack("!2xH4s8x", dst) # Please block this port externally! if port == 11337: client.close() logging.error( "Detected direct traffic to port 11337 from ip '%s'! Blocked!", srv_ip) return logging.info("[%s:%s] -> S(%d): %s %s", address[0], address[1], port, str(data), '(SSL)' if self.ssl else '') if port not in client_reply_map: client_reply_map[port] = 0 elif client_reply_map[port] >= self.max_replies: logging.info( 'Client exceeded chatter for port {}. Killing connection...' .format(port)) break client_reply_map[port] += 1 matches = self.port_options[port] match = self.rand.choice(matches) pattern = match.pattern # Try with small/normal size, then try a larger pattern limit if we hit a value error. try: response = self.small_gen.xeger(pattern) except ValueError: logging.warning( 'Unable to generate small response for repeat in regex "%s". Trying larger generator...', pattern) try: response = self.large_gen.xeger(pattern) except ValueError: logging.error( 'Unable to generate response for overly long repeat in regex "%s"', pattern) response = '' response = response.encode('utf-8').decode() if is_udp: client.sendto(response.encode(), address) else: client.send(response.encode()) except (SocketException, ConnectionResetError, BrokenPipeError) as e: client.close() return False except Exception as e: logging.info( "Encountered unknown error when handling data from %s.", address) logging.exception(e) client.close() return False
# -*- coding:utf-8 -*- #生成随机的URL供测试用,数据格式为URL+5-20位数字,生成的文件名为test1.txt from xeger import Xeger _x = Xeger() #num = 300 for i in range(100000):#生成100000条URL testStr = _x.xeger(r'URL^[0-9]{5,20}$') f = open('./test1.txt', 'a') f.write(testStr + ' ') #print(testStr) i += 1
# !/usr/bin/env python # -*- coding: utf-8 -*- """生成符合正则表达式的字符串""" import sys from xeger import Xeger _x = Xeger(limit=4) out = _x.xeger(r"[A-Z]\d[A-Z]") print(out) # A5G:这个就是随机生成的服务上面正则表达式的字符串 print(sys.maxsize) # 9223372036854775807 xe = Xeger(limit=sys.maxsize) bucket_name = xe.xeger("^[A-Za-z0-9]{3,64}$") print(bucket_name) print(len(bucket_name)) # 存储空间的命名规范:bucket的长度为3-64位,只能包括小写字母,数字和短横线
from telegram.ext import Updater import json from telegram.ext import CommandHandler, MessageHandler, ConversationHandler, Filters, CallbackQueryHandler from telegram import InlineKeyboardButton, InlineKeyboardMarkup import logging import requests import regex as re from xeger import Xeger import datetime import time from copy import copy from shutil import copyfile # random string generator xeger = Xeger(limit=16) # Enable logging logging.basicConfig( format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', level=logging.INFO) logger = logging.getLogger(__name__) try: with open("token") as f: token = f.readline().strip() except: print( "No token! Create file named \"token\" under the same directory with main.py!" ) exit(1) try:
print(regex) x = Xeger() posset = set() for i in range(0,10): posset.add(x.xeger(repr(regex))) for index, i in enumerate(posset): print(i) exit()''' no = 0 while no < 1000: regex = rand_example(limit) if len(repr(regex)) < 7: continue x = Xeger() posset = set() endcount = 0 while endcount < 50 and len(posset) < 10: posset.add(x.xeger(repr(regex))) endcount += 1 negset = set() for i in range(0, 1000): # random regex생성 str_list = [] for j in range(0, random.randrange(1, 15)): if random.random() < 0.5: str_list.append('0')
def exec_java(expr): obj = subprocess.Popen(["java", "oo.assignment1.PolyDerivation"], stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE) expr = expr.encode("utf-8") obj.stdin.write(expr) obj.stdin.close() cmd_out = obj.stdout.read() obj.stdout.close() cmd_out = cmd_out.decode() res = cmd_out.replace('^', '**') return res _x = Xeger() newStr = r"(([+-][+-]?[1-9][0-9]{0,5})|([+-][+-]?[1-9][0-9]{0,5}\*x\^[+-]?[1-9][0-9]{0,1})|([+-][+-]?x\^[+-]?[1-9][0-9]{0,1})|([+-][+-]?[1-9][0-9]{0,5}\*x)|([+-][+-]?x)){1,20}" def test_generator(): tests = [] for i in range(200): testStr = _x.xeger(newStr) tests.append(testStr) return tests ''' each = "-+x^384++3226505*x^8-840*x^-6244647-2069*x^-10901-2*x++5*x+x"
# 作者 : pengcheng # 创建时间 : 2020/11/25 14:21 from xeger import Xeger import exrex from faker import Faker import rstr from strgen import StringGenerator x = Xeger(limit=10) # print(x.xeger("^[a-z](?=.*[\u4E00-\u9FA5])[^\*/])")) # print(exrex.getone("(^[a-z](?=.*[\u4E00-\u9FA5])[^\*/])",limit=10)) # fake = Faker("zh_CN") # print(fake.name()) # print(fake.address()) # print(fake.ssn()) # print(fake.phone_number()) # print(fake.user_agent()) # print(fake.text(max_nb_chars=5)) # print(exrex.getone('[1-9]([^0-9]{4,10})')) print( exrex.getone( '[a-zA-Z0-9\u4e00-\u4fa5~!@#$%^&*()_+`\-={}|\[\]\\:"<>?;\',\./]{12}')) # print(rstr.rstr('[a-zA-Z]',10,include='1$%')) # print(StringGenerator('[爱到覅据我i恩京拉萨大家发xdfgbdf]{10}&[\p]{2}').render_list(5,unique=True))
class RegexGen: #some lines are missing at the end with faster method def __init__(self): SetTitle('[One Man Builds Customizable Gen] ^| [REGEX GENERATION]') clear() self.title = """ ╔═════════════════════════════════════════════════════════════════╗ ╦═╗╔═╗╔═╗╔═╗═╗ ╦ ╔═╗╔═╗╔╗╔╔═╗╦═╗╔═╗╔╦╗╦╔═╗╔╗╔ ╠╦╝║╣ ║ ╦║╣ ╔╩╦╝ ║ ╦║╣ ║║║║╣ ╠╦╝╠═╣ ║ ║║ ║║║║ ╩╚═╚═╝╚═╝╚═╝╩ ╚═ ╚═╝╚═╝╝╚╝╚═╝╩╚═╩ ╩ ╩ ╩╚═╝╝╚╝ ╚═════════════════════════════════════════════════════════════════╝ """ print(self.title) self.method = int(input('\t\t\t [>] [1]Faster [2]Accurate: ')) self.threads = 1 if self.method == 1: self.threads = int(input('\t\t\t [>] Threads: ')) self.amount = int(input('\t\t\t [>] Amount (0 for unlimited): ')) self.pattern = str(input('\t\t\t [>] Pattern: ')) self.x = Xeger() self.generated = 0 print('') def RegexGen(self): try: string = self.x.xeger(self.pattern) self.generated += 1 print(f'\t\t\t [{self.generated}] {string}') with open('regex_generated.txt', 'a', encoding='utf8') as f: f.write(string + '\n') except: self.RegexGen() def Start(self): if self.method == 1: if self.amount > 0: threads = [] for i in range(self.amount): Run = True while Run: if active_count() <= self.threads: thread = Thread(target=self.RegexGen) threads.append(thread) thread.start() Run = False for x in threads: x.join() print('') print('\t\t\t [#] REGEX GENERATION DONE! RETURNING TO MENU') sleep(2) else: while True: if active_count() <= self.threads: Thread(target=self.RegexGen).start() else: if self.amount > 0: for i in range(self.amount): self.RegexGen() print('') print('\t\t\t [#] REGEX GENERATION DONE! RETURNING TO MENU') sleep(2) else: while True: self.RegexGen()
from xeger import Xeger import aes_cbc_decryptor as ACD import aes_cbc_encryptor as ACE import random import base64 import math filename = '/home/jethromagbanua/Downloads/text_set' with open(filename, 'rb') as rb: contents = rb.read() ENCRYPTION_COUNT = 100 x = Xeger(limit=16) encrypted_messages = [] for i in range(ENCRYPTION_COUNT): message = '' try: start = random.randint(0, int(math.floor(len(contents) - 401))) message = contents[start:400 + (start) + random.randint(0, 100)] print(start) except Exception as e: print("Boundary exceeded...trying again") i -= 1 continue key = x.xeger("[a-zA-Z0-9]{16}") encrypted = ACE.encrypt_cbc(message, key) encrypted_messages.append([encrypted, key])