那麼,我不,如果encrypt
正是你的意思。我的意思是,使用say,md5
加密字符串將無法在服務器端爲您解密字符串。爲此,您應該使用encode
,如使用base64
編碼系統。這將用編碼字符串替換id,但有人savvy
可能會注意到這一點,並解碼你的網址中的字符串。
你在這裏試圖完成的是通過默默無聞的安全這是不推薦的。你可以應用這種技術,但是你會更好地在代碼中添加更多的安全性,比如權限和類似的東西。
對於編碼您的用戶名,你可以將這個方法添加到您的Item
類:
class Item
...
def encoded_id(self):
import base64
return base64.b64encode(str(self.user_id))
def decode_id(self, id):
import base64
return base64.b64decode(id)
...
這樣,你可以在你的意見做到這一點:
<tr>
{% with user_id=item.encoded_id %}
#user_id have to be encrypted
<td><center><a href="{% url "accounts" user_id %}">{{ item.Company_name }}</a></center></td>
{% endwith %}
,你將有你的網址與在base64中編碼的id
。
以前請注意我的警告。 你不應該僅僅依靠這個,這是一個有效的做法,但請記住,編碼可以顛倒。
希望這有助於!
我想你應該考慮在用戶模型中使用slugfield。 – dusual
真的需要加密嗎?如果您在視圖中進行了適當的檢查,那麼人們嘗試使用其他人的ID並不重要,檢查會阻止他們訪問該頁面。 – Ngenator
那麼大多數主要的網絡平臺都不會試圖隱藏userid的真正無關緊要的信息,如果您的權限已被很好地定義/實施 – dusual