mport hashlib input_str = input("请输入需要破解的字符串:") m = hashlib.md5() found = False with open('dictionary.txt', 'r') as f: for word in f: word = word.strip() m.update(word.encode('utf-8')) if m.hexdigest() == input_str: print("成功破解,原始字符串为:", word) found = True break if not found: print("未能破解该字符串!")
时间: 2023-05-29 12:02:30 浏览: 62
该程序是一个简单的MD5密码破解程序,需要输入一个需要破解的字符串,然后程序会读取一个字典文件(dictionary.txt),逐个尝试对该字符串进行MD5加密后的结果是否与字典文件中的某个字符串的MD5加密结果相同,如果破解成功,则输出该字符串,否则输出未能破解该字符串。
该程序的原理是基于MD5加密的单向加密特性,无法直接破解出明文密码,但可以通过字典攻击或暴力破解的方式尝试破解出密码。但实际上,在现代密码领域,MD5加密已经不安全,因此该程序只是一个学习和了解密码学基础的入门程序。
相关问题
mport numpy as np import tensorflow as tf from keras.models import Sequential from keras.layers import Dense, Activation, Dropout, Flatten from keras.layers.convolutional import Conv2D, MaxPooling2D from keras.utils import np_utils from keras.datasets import mnist from keras import backend as K from keras.optimizers import Adam import skfuzzy as fuzz import pandas as pd from sklearn.model_selection import train_test_split # 绘制损失曲线 import matplotlib.pyplot as plt import time from sklearn.metrics import accuracy_score data = pd.read_excel(r"D:\pythonProject60\filtered_data1.xlsx") # 读取数据文件 # Split data into input and output variables X = data.iloc[:, :-1].values y = data.iloc[:, -1].values X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) # 导入MNIST数据集 # 数据预处理 y_train = np_utils.to_categorical(y_train, 3) y_test = np_utils.to_categorical(y_test, 3) # 创建DNFN模型 start_time=time.time() model = Sequential() model.add(Dense(64, input_shape=(11,), activation='relu')) model.add(Dense(128, activation='relu')) model.add(Dropout(0.5)) model.add(Dense(3, activation='softmax')) # 编译模型 model.compile(loss='categorical_crossentropy', optimizer=Adam(), metrics=['accuracy']) # 训练模型 history = model.fit(X_train, y_train, validation_data=(X_test, y_test), epochs=10, batch_size=128) # 使用DNFN模型进行预测 y_pred = model.predict(X_test) y_pred= np.argmax(y_pred, axis=1) print(y_pred) # 计算模糊分类 fuzzy_pred = [] for i in range(len(y_pred)): fuzzy_class = np.zeros((3,)) fuzzy_class[y_pred[i]] = 1.0 fuzzy_pred.append(fuzzy_class) fuzzy_pred = np.array(fuzzy_pred) end_time = time.time() print("Total time taken: ", end_time - start_time, "seconds")获得运行结果并分析
根据代码,这是一个使用Keras创建DNFN模型,对数据进行分类的代码。数据集使用的是一个Excel文件,通过pandas读取数据,然后分为训练集和测试集。模型使用了三层Dense层,其中第一层有64个神经元,第二层有128个神经元,最后一层是softmax激活函数的Dense层,输出3个类别的概率。模型使用Adam优化器和categorical_crossentropy损失函数进行编译。训练模型时使用了128个样本的batch size,训练了10个epochs。训练结束后,使用模型对测试集进行预测,得到了预测结果和模糊分类结果。最后,代码输出了总共的运行时间。
需要注意的是,这份代码并没有对数据进行标准化或归一化处理,这可能会影响模型的性能。同时,模型的参数也可以进行调整以达到更好的性能。
mport requests from bs4 import BeautifulSoup import csv def get_top250_movies(): url = 'https://movie.douban.com/top250' headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'} movie_info_list = [] for i in range(0, 250, 25): params = {'start': str(i)} res = requests.get(url, headers=headers, params=params) soup = BeautifulSoup(res.text, 'html.parser') movie_list = soup.find_all('div', class_='info') for movie in movie_list: title = movie.find('span', class_='title').text info = movie.find('div', class_='bd').p.text.strip().split('\n') director = info[0][4:] actors = info[1][3:] year = info[1][-5:-1] rating = movie.find('span', class_='rating_num').text comment_num = movie.find('div', class_='star').find_all('span')[3].text[:-3] movie_info_list.append([title, director, actors, year, rating, comment_num]) return movie_info_list def save_to_csv(movie_info_list): with open('movie_info.csv', 'w', newline='', encoding='utf-8-sig') as f: writer = csv.writer(f) writer.writerow(['电影名称', '导演', '演员', '上映年份', '评分', '评论数']) for movie_info in movie_info_list: writer.writerow(movie_info) if name == 'main': movie_info_list = get_top250_movies() save_to_csv(movie_info_list) print('电影信息保存成功!') 在此代码的基础上对爬取的电影类型进行生成按照评分生成词云
可以使用Python中的wordcloud库来生成词云。首先需要安装该库,可以使用以下命令进行安装:
```
pip install wordcloud
```
然后在获取电影信息的代码中添加以下代码:
```python
from wordcloud import WordCloud
import matplotlib.pyplot as plt
# 从电影信息中获取所有电影类型
genre_list = []
for movie_info in movie_info_list:
genres = movie_info[2].split('/')
genre_list.extend(genres)
# 生成词云
wordcloud = WordCloud(background_color='white', width=800, height=400).generate(' '.join(genre_list))
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis('off')
plt.show()
```
这段代码将所有电影类型存储在一个列表中,然后使用WordCloud生成词云图并显示。可以根据需要调整词云的参数,例如背景颜色、大小等。最终生成的词云图可以使用Matplotlib库进行显示。