PDA

View Full Version : سوال: کمک: جلوگیری از ویرایش کردن فایل text یا Html



Ehsan_Shia
شنبه 10 مرداد 1394, 19:28 عصر
بسم الله الرحمن الرحیم

با سلام خدمت دوستان برنامه نویس
چند وقتی است یک سوال ذهن بنده را به خودش مشغول کرده، در یک نرم افزاری دیدم اگر به فایل html ای که در نرم افزار استفاده شده، مثلاً فایل html قسمت درباره نرم افزار دست بزنیم و آنرا ویرایش کنیم، نرم افزار دیگر باز نمی شود و ارور می دهد که نسخه اصلی نیست، حالا چگونه می توان این کار برای نرم افزار خودم هم بکنم؟

AJL110ALI
شنبه 10 مرداد 1394, 19:40 عصر
یه hash ازش بگیر ذخیره کن. بعد هر بار برنامه باز شد یه هش دیگه بگیر و با اونی که قبلا داشتی مقایسه کن. مساوی نبودن یعنی عوض شده ...
see : http://us.informatiweb.net/programmation/36--generate-hashes-md5-sha-1-and-sha-256-of-a-file.html (http://us.informatiweb.net/programmation/36--generate-hashes-md5-sha-1-and-sha-256-of-a-file.html)

Ehsan_Shia
شنبه 10 مرداد 1394, 19:52 عصر
این لینکی را که داده بودید دیدم، امّا سر در نیاوردم، ببینید فرض کنید الان یک نوت پد برای نرم افزار داریم که در ریچ تکست باکس لود می شود، حالا برای این چه کار کنیم، بی زحمت کد یا یک نمونه بذارید، بی زحمت.:لبخندساده:

AJL110ALI
شنبه 10 مرداد 1394, 20:14 عصر
اون اطلاعاتی که رو صفحه about نشون میدید رو توی یه فایل ذخیره کردید؟
اگه اره:
ببینید یه تابع تو لینکی دادم هست به اسم hash_generator . این یه فایل میگیره و یه hash برمیگردنه. ( hash یه رشته است که از یه فایل یا یه دیتا تولید میکنیم و تظمین میکنه که برای دیتا های متفاوت hash های متفاوت به ما بده و فقط و فقط وقتی که اون دو تا دیتا مثل هم بودن hash هاشون هم مثل هم میشه )
خب با این تابع. در زمان کدنویسی، یه hash از فایل متنتون میگیرید و مستقیم تو کد اینو میریزید تو یه متغیر. مثلا :

dim A as string="e9867d31970db2df52c2825f6019145d"
بعد تو روال اول اجرا برنامه، مثلا form_load یا application.startup ، یه همچین کدی مینویسید:


Dim A As String = "e9867d31970db2df52c2825f6019145d"
Dim B As String = hash_generator("md5", "aboutFile.txt")
If (A! = B) Then
MsgBox("CRASH!")
End If

که
aboutFile.txt همون فایلیه که توش اطلاعاتت هست.
الان میای یه hash هنگام اجرا شدن از فایل میگیری، با hash ای که قبلا گرفته بودی مقایسه میکنی. اگه مساوی نبودن یعنی فایل دستکاری شده.
md5 هم یه متذ برا hash گرفتنه.
البته یه هکر میتونه اینم دور بزنه ، ولی جلو کاربرای عادی رو میگیره

Ehsan_Shia
شنبه 10 مرداد 1394, 21:07 عصر
دست تون درد نکنه مشکل حل شد فقط وقتی که خواستم برنامه و فایل همراه (aboutFile.txt) را در جای دیگری کپی کنم، مشکلی پیش نمی آید، یعنی hash تغییر نمی کند؟:قلب::تشویق:

AJL110ALI
شنبه 10 مرداد 1394, 21:33 عصر
نه. تا وقتی از همون الگوریتم استفاده کنید فرقی نمیکنه