如何在 Django 中将纯文本加密为 md5/sha1?
How to encrypt plain text to md5 / sha1 in django?
我想创建一个应用程序,管理员可以让用户使用加密到数据库中的新消息。我有核心功能,都可以正常工作。但是,我仍然无法将消息从文本加密到 md5/sha1。我已阅读并尝试 this and this。但是,我还是做不到。我是 django 的新手,非常感谢您的回复。谢谢
这是我的模型:
class UserProfile(models.Model):
user = models.OneToOneField(User) #digunakan untuk relasi ke model User (default) alias UserProfile adalah sebagai extending model
CATEGORY_CHOICES = (
('admin','Admin'),
('user','User'),
)
hak_akses = models.CharField(max_length=100, choices = CATEGORY_CHOICES)
messages = models.CharField(max_length=100, blank=True)
# password_pckelas = models.CharField(max_length=100, blank=True)
# Override the __unicode__() method to return out something meaningful!
def __unicode__(self):
return self.user.username
这是我的视图函数:
def tambah_user(request, template_name='form_user.html'):
#cek session
if 'username' in request.session and request.session['hak_akses'] == 'admin':
#ambil dari database untuk mengaktifkan ubah_password_admin
users = User.objects.all()
user_form = UserForm(data=request.POST)
profile_form = UserProfileForm(data=request.POST)
messages = profile_form.data['messages'] #ambil messages
if request.method == 'POST':
if user_form.is_valid() and profile_form.is_valid():
#i want hash messages in here and then save into database
user = user_form.save()
user.set_password(user.password)
user.save()
profile = profile_form.save(commit=False)
profile.user = user
profile.save()
return redirect('manajemen_user')
else:
print user_form.errors, profile_form.errors
else:
user_form = UserForm()
profile_form = UserProfileForm()
data = {
'user_form': user_form,
'profile_form': profile_form,
'object_list': users
}
return render(request, template_name, data)
#jika session tidak ada
else:
return HttpResponseRedirect('/simofa/logout')
这是我的 html 模板:
<form name="tambah_user" class="form-horizontal style-form" method="POST">{% csrf_token %}
<div class="form-group">
<label class="col-sm-2 col-sm-2 control-label">Nama User</label>
<div class="col-sm-10">
<!-- <input type="text" class='form-control'> -->
{{ user_form.username }}
</div>
</div>
<div class="form-group">
<label class="col-sm-2 col-sm-2 control-label">Password</label>
<div class="col-sm-10">
{{ user_form.password }}
</div>
</div>
<div class="form-group">
<label class="col-sm-2 col-sm-2 control-label">Messages</label>
<div class="col-sm-10">
{{ profile_form.messages }}
</div>
</div>
<div class="form-group">
<label class="col-sm-2 col-sm-2 control-label">Hak Akses</label>
<div class="col-sm-10">
{{ profile_form.hak_akses }}
<br><br><br>
<button type="submit" class="btn btn-theme">Submit</button>
</div>
</div>
</form>
哈希是一种将一条消息转换为另一条消息的函数。考虑一个哈希函数 (LAME_HASH
),它只计算字符串中的字符数。
LAME_HASH("TOOMANYSECRETS")
>>> 13
LAME_HASH("SETECASTRONOMY")
>>> 13
如果我告诉你我的字符串是 "TOOMANYSECRETS" 而哈希值是 10,你马上就能看出我在说谎。但是,如果我告诉你哈希值是 13,你无法验证消息是什么,它可能是 "TOOMANYSECRETS" 或 "SETECASTRONOMY"。虽然这一切看起来微不足道,但这实际上就是 MD5 和 SHA 等哈希机制的工作原理。
没有 "decryption" 的哈希值,如果有人告诉你否则他们就是在撒谎,否则整个安全世界将集体爆炸。
我可以用这个
将纯文本加密到 md5 / sha1
import hashlib
print hashlib.md5('test').hexdigest()
这就是我一直在寻找的答案
我想创建一个应用程序,管理员可以让用户使用加密到数据库中的新消息。我有核心功能,都可以正常工作。但是,我仍然无法将消息从文本加密到 md5/sha1。我已阅读并尝试 this and this。但是,我还是做不到。我是 django 的新手,非常感谢您的回复。谢谢
这是我的模型:
class UserProfile(models.Model):
user = models.OneToOneField(User) #digunakan untuk relasi ke model User (default) alias UserProfile adalah sebagai extending model
CATEGORY_CHOICES = (
('admin','Admin'),
('user','User'),
)
hak_akses = models.CharField(max_length=100, choices = CATEGORY_CHOICES)
messages = models.CharField(max_length=100, blank=True)
# password_pckelas = models.CharField(max_length=100, blank=True)
# Override the __unicode__() method to return out something meaningful!
def __unicode__(self):
return self.user.username
这是我的视图函数:
def tambah_user(request, template_name='form_user.html'):
#cek session
if 'username' in request.session and request.session['hak_akses'] == 'admin':
#ambil dari database untuk mengaktifkan ubah_password_admin
users = User.objects.all()
user_form = UserForm(data=request.POST)
profile_form = UserProfileForm(data=request.POST)
messages = profile_form.data['messages'] #ambil messages
if request.method == 'POST':
if user_form.is_valid() and profile_form.is_valid():
#i want hash messages in here and then save into database
user = user_form.save()
user.set_password(user.password)
user.save()
profile = profile_form.save(commit=False)
profile.user = user
profile.save()
return redirect('manajemen_user')
else:
print user_form.errors, profile_form.errors
else:
user_form = UserForm()
profile_form = UserProfileForm()
data = {
'user_form': user_form,
'profile_form': profile_form,
'object_list': users
}
return render(request, template_name, data)
#jika session tidak ada
else:
return HttpResponseRedirect('/simofa/logout')
这是我的 html 模板:
<form name="tambah_user" class="form-horizontal style-form" method="POST">{% csrf_token %}
<div class="form-group">
<label class="col-sm-2 col-sm-2 control-label">Nama User</label>
<div class="col-sm-10">
<!-- <input type="text" class='form-control'> -->
{{ user_form.username }}
</div>
</div>
<div class="form-group">
<label class="col-sm-2 col-sm-2 control-label">Password</label>
<div class="col-sm-10">
{{ user_form.password }}
</div>
</div>
<div class="form-group">
<label class="col-sm-2 col-sm-2 control-label">Messages</label>
<div class="col-sm-10">
{{ profile_form.messages }}
</div>
</div>
<div class="form-group">
<label class="col-sm-2 col-sm-2 control-label">Hak Akses</label>
<div class="col-sm-10">
{{ profile_form.hak_akses }}
<br><br><br>
<button type="submit" class="btn btn-theme">Submit</button>
</div>
</div>
</form>
哈希是一种将一条消息转换为另一条消息的函数。考虑一个哈希函数 (LAME_HASH
),它只计算字符串中的字符数。
LAME_HASH("TOOMANYSECRETS")
>>> 13
LAME_HASH("SETECASTRONOMY")
>>> 13
如果我告诉你我的字符串是 "TOOMANYSECRETS" 而哈希值是 10,你马上就能看出我在说谎。但是,如果我告诉你哈希值是 13,你无法验证消息是什么,它可能是 "TOOMANYSECRETS" 或 "SETECASTRONOMY"。虽然这一切看起来微不足道,但这实际上就是 MD5 和 SHA 等哈希机制的工作原理。
没有 "decryption" 的哈希值,如果有人告诉你否则他们就是在撒谎,否则整个安全世界将集体爆炸。
我可以用这个
将纯文本加密到 md5 / sha1import hashlib
print hashlib.md5('test').hexdigest()
这就是我一直在寻找的答案