PDA

نسخه کامل مشاهده نسخه کامل : کد و دیکد با الگوریتم Sha1



skmkh6056
09-03-2008, 09:50
کسی میتونه برا کد و دیکد کردن یک رشته(String) کمکم کنه؟ اگه آره ممنون میشم

F A R H A D
09-03-2008, 10:21
الگوريتم مورد استفاده رو توضيح بديد شايد ...

skmkh6056
09-03-2008, 15:25
Sha1 یک الگوریتم کد گذاری بر روی داده یا هر چزی دیگری می باشد. من یه هفته دیگه یه فایلی دریافت خواهم کرد که با همین الگوریتم کد شده و باید دیکد کرده و اطلاعات داخل آن را بخونم. روی اطلاعات خوانده شده یک سری عملیات خاص انجام خواهم داد و دوباره باید با همین الگوریتم کد کرده و برگردونم. این یک پروژه کاری هستش که برام خیلی حیاتی هستش.
دیگه توضیح خاصی نداره. فقط اینا بگم که STRING کد شده میگیرم و STRING کد شده پس می دم. این وسط باید یه سری عملیات انجام بدم.با تشکر

VDeveloper
09-03-2008, 16:17
TurboPower LockBox

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

من خیلی وقت پیش توی یه پروژه ازش استفاده کردم. راضی بودم. اگر می خوای بدونی چطور پیاده سازیش میکنه، کافیه سورسش رو نگاه کنی. Documentation همراه کامپوننت هم خوب و کافی هست.

skmkh6056
09-03-2008, 18:26
TurboPower LockBox

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

من خیلی وقت پیش توی یه پروژه ازش استفاده کردم. راضی بودم. اگر می خوای بدونی چطور پیاده سازیش میکنه، کافیه سورسش رو نگاه کنی. Documentation همراه کامپوننت هم خوب و کافی هست.

سلام دوست عزیز. من سایتو نگاه کردم ولی نمیدونم کدوم یکی را دانلود کنم. اگه لطف کنی لینک دانلودش را برام بذاری ممنون میشم. مرسی

romixery
09-03-2008, 19:04
سلام
من يه توصيه مي كنم. اونم اينكه اگه برنامه اي كه مي نويسي خيلي مهمه از الگوريتم هاي معروف استفاده نكن چون خيلي سريع راه Decode كردنش رو هكر ها مي دونن. بازم ميگم اگه خيلي مهمه وگرنه نه!!! از خودتم مي توني يه الگوريتم Decode بسازي كه به نظر من بهتره.
موفق باشي
باي

VDeveloper
10-03-2008, 00:00
من يه توصيه مي كنم. اونم اينكه اگه برنامه اي كه مي نويسي خيلي مهمه از الگوريتم هاي معروف استفاده نكن چون خيلي سريع راه Decode كردنش رو هكر ها مي دونن.
اتفاقا باید از همچین الگوریتم هایی استفاده بکنه، چون امتحان خودشون رو پس دادن. امنیت این روشها صرفا بخاطر الگوریتمشون نیست، چون الگوریتمشون همین الان هم همه جا پیدا میشه، بلکه نوع کلیدهایی هست که استفاده می کنند. مثلا در حال حاضر با دانش موجود امکان شکستن یک کلید 512 بایتی که از اعداد اول بدست اومده، عملا غیرممکن هست، چون باز کردنش، حتی با ابرکامپیوترهای موجود، به چند صد سال زمان نیاز داره.
تنها جایی که میشه منطقا استفاده از الگوریتم های استاندارد رو محکوم کرد جایی هست که بحث امنیت ملی و داده های نظامی مطرح میشه چون احتمال اینکه این الگوریتم های تجاری کلیدهای مخفی برای رمزگشایی توسط NSA داشته باشند خیلی زیاده. غیر از این مورد دیگه هیچ جای نگرانی نیست. همین الان هم می بینید که سایت های معاملات تجاری مثل PayPal برای داد و ستد کردن پول از همین الگوریتم های استاندارد موجود استفاده می کنند، یا شرکت های نرم افزاری کدهای خودشان را با همین الگوریتم ها Sign می کنند.
در ضمن، LockBox الگوریتم های استاندارد را براساس همون استاندارد پیاده سازی میکنهه، یعنی خودش الگوریتم من درآوردی نداره.

یک نکته رو هم توجه داشته باشید. SHA-1 یک الگوریتم Hash ساز هست. نمی تونید کد تولید شده توسط آن را Decode کنید. الگوریتم هایی مثل SHA-1 یا MD5 برای رمزنگاری داده ها بکار نمیرند. اگر درباره این الگوریتم و بطور کلی الگوریتم های ساخت Hash اطلاع ندارید، بهتر اول درباره اش تحقیق کنید.


من سایتو نگاه کردم ولی نمیدونم کدوم یکی را دانلود کنم.
یک دکمه بزرگ دانلود داره که وقتی روش کلیک می کنید یک صفحه باز میشه که توش کلا دوتا لینک دانلود بیشتر نیست. یکی خود کامپوننت به همراه سورسش، و یکی هم مستندات و راهنمای استفاده از کامپوننت

F A R H A D
10-03-2008, 08:13
دقيقا همينه كه VDeveloper گفتند:

SHA-1 یک الگوریتم Hash ساز هست
البته با sha-1 كار نكردم اما ميتونم الگوريتم hashing ي رو معرفي كنم كه در php هم همه دارند از اون استفاده مي كنند و هنوز راه برگشتي براش پيدا نشده: MD5
اگر به كامپوننت نياز داريد بگيد تا بذارم.

skmkh6056
10-03-2008, 08:56
دقيقا همينه كه VDeveloper گفتند:

البته با sha-1 كار نكردم اما ميتونم الگوريتم hashing ي رو معرفي كنم كه در php هم همه دارند از اون استفاده مي كنند و هنوز راه برگشتي براش پيدا نشده: MD5
اگر به كامپوننت نياز داريد بگيد تا بذارم.

اگه لطف کنین ممنون میشم. چون میخوام در این مورد اطلاعاتم را زیاد کنم. اما در مورد SHA1 گفتنی هستم که یه فایل از طرف یه شرکت آلمانی دریافت خواهم کرد که با این الگوریتم code شده باید بتونم decode کنم و اطلاعات مورد نیاز را ازش بردارم. پسورد های مورد نیاز برای decode را در اختیارم خواهند گذاشت. لازم به ذکر است که بعد از خواندن اطلاعات تعییراتی بر روی فایل انجام خواهم داد که دوباره باید code کنم و فایل را برگردونم. ممنون از همه

F A R H A D
10-03-2008, 13:35
باید بتونم decode کنم
در مورد SHA1 مطمئن نيستم اما MD5 برگشت پذير نيست

پسورد های مورد نیاز برای decode را در اختیارم خواهند گذاشت
اگر منظور از پسورد، الگوريتم هست كه لطف كنيد و در اختيار ما هم بگذاريد

كامپوننت HashLib رو ميتونيد از لينك زير دانلود كنيد:
نام كامپوننت: HashLib v1.0
حجم فايل: 47.35 KB
الگوريتم هاي hash و encode كه در اين كامپوننت هست:


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

موفق باشيد

VDeveloper
10-03-2008, 15:05
البته با sha-1 كار نكردم اما ميتونم الگوريتم hashing ي رو معرفي كنم كه در php هم همه دارند از اون استفاده مي كنند و هنوز راه برگشتي براش پيدا نشده
SHA-1 امنیتش از MD5 بیشتر هست.
در ضمن، اگر به توضیحات مربوط به LockBox توجه کنید می بینید که مجموعه ایی از استانداردهای کدنگاری را پیاده سازی میکنه، نه فقط SHA-1 را:
It provides support for Blowfish, RSA, MD5, SHA-1, DES, triple- DES, Rijndael, & digital signing of messages


اما در مورد SHA1 گفتنی هستم که یه فایل از طرف یه شرکت آلمانی دریافت خواهم کرد که با این الگوریتم code شده باید بتونم decode کنم و اطلاعات مورد نیاز را ازش بردارم. پسورد های مورد نیاز برای decode را در اختیارم خواهند گذاشت.
SHA-1 یک الگوریتم برگشت ناپذیر هست. شما نمی تونید با هیچ کلیدی اونو Decode کنید! کار SHA-1 اینه که یک رشته داده (با هر طولی - از یک بایت گرفته تا هر چقدر که فکرش را بکنید) را بگیره و از آن یک عدد 160 بیتی منحصر به فرد تولید کنه. یعنی اگر شما یک حرف بهش بدید، یک کد 160 بیتی می گیرید، اگه یک گیگابایت داده هم بهش بدید، باز هم یک کد 160 بیتی می گیرید. این کد برگشت ناپذیره، یعنی نمی تونید با داشتن آن، به داده اصلی برسید. اگر این کار امکان پذیر بود، باید اسمش می شد الگوریتم فشرده سازی، چون می تونست هر داده ایی رو با هر حجمی تبدیل به یک عدد 160 بیتی بکنه و هر زمان لازم بود این عدد رو تبدیل به داده اصلی بکنه. مثلا میشد کل کتاب های جهان رو با این روش فشرده کرد و مثلا توی یک DVD جا داد! الگوریتم های تولید Hash معمولا برای بررسی اصالت (Integrity) داده ها استفاده میشند. مثلا زمانی که شما پیامی دریافت می کنید و می خواید مطئن بشید که محتوی پیام در طول مسیر تغییر نکرده.

skmkh6056
11-03-2008, 13:56
در مورد SHA1 مطمئن نيستم اما MD5 برگشت پذير نيست

اگر منظور از پسورد، الگوريتم هست كه لطف كنيد و در اختيار ما هم بگذاريد

كامپوننت HashLib رو ميتونيد از لينك زير دانلود كنيد:
نام كامپوننت: HashLib v1.0
حجم فايل: 47.35 KB
الگوريتم هاي hash و encode كه در اين كامپوننت هست:


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

موفق باشيد

سلام. من دانلود کردم نتونستم ازش استفاده کنم. اطفا راهنماییم کنین. خیلی ضروری هستش. اگه میشه کامل توضیح بدین که دیگه مجلور نشم هی سوال کنم. دیگه وقتی هم برام نمونه. ببخشین. مرسی

F A R H A D
11-03-2008, 14:07
با نصب كامپوننت مشكل داريد يا استفاده؟

skmkh6056
11-03-2008, 14:17
با نصبش. وقتی روی فایل elHashLib.dpk کلیک میکنم صفحه مربوطه را باز میکنه و دیگه نمیتونم اون را کامپاسل و نصب کنم. لطفا راهنمایی کنید.

F A R H A D
11-03-2008, 16:01
به فايل پكيج كاري نداشته باشيد. از component -> install component فايل cHashComponent.pas رو نصب كنيد

skmkh6056
11-03-2008, 17:03
مرسی.
با کد HashCalc1.HashStr(Edit1.Text); میتونم کد کنم اما مقدار کد شده را کجا بریزم؟ سوال دوم مقدار کد شده را چطوری دیکد کنم؟
ممنون میشم اگه راهنماییم کنین.
با سپاس

F A R H A D
11-03-2008, 17:52
اما مقدار کد شده را کجا بریزم؟
هر جا كه دم دستتون بود!
خب يك مقدار string هست ديگه. ميتونيد توي متغير، بانك، فايل و ... نگه داريد.

مقدار کد شده را چطوری دیکد کنم؟
اگر به عرايض بنده و جناب vdeveloper توجه مي كرديد متوجه مي شديد كه hashing برگشت ناپذير هست. حالا اگر طبق گفته خودتون قرار هست الگوريتم decode براي sha1 رو بگيريد، در اختيار ما هم بگذاريد تا راهنمايي كنيم.

VDeveloper
11-03-2008, 18:00
-----------

skmkh6056
12-03-2008, 10:41
هر جا كه دم دستتون بود!
خب يك مقدار string هست ديگه. ميتونيد توي متغير، بانك، فايل و ... نگه داريد.

اگر به عرايض بنده و جناب vdeveloper توجه مي كرديد متوجه مي شديد كه hashing برگشت ناپذير هست. حالا اگر طبق گفته خودتون قرار هست الگوريتم decode براي sha1 رو بگيريد، در اختيار ما هم بگذاريد تا راهنمايي كنيم.

دوست عزیز اگه به تابع بالایی توجه کنید میبینید که هیچ رشته ای برنمیگردونه که بتونم تو یه متغیر string بریزم. نکته بعدی اینکه اگه الگوریتم sha1 درواقع ما را تو چاهی میندازه که هیچ راه برگشتی نیست. پس با این حساب به دردمون نمیخوره چون بعد کد کردن دیگه اگه اطلاعات لازممون شد نمیتونیم اونها را برگردونیم.
الگوریتمی داریم که بتونیم باهاش هم کد کنیم هم دیکد. اگه سراغ داری برام معرفی کنین. مرسی

F A R H A D
16-03-2008, 08:40
براي استفاده از رشته اي كه كدگذاري كرديد:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید


الگوریتم sha1 درواقع ما را تو چاهی میندازه که هیچ راه برگشتی نیست
چرا چاه؟ اگر نياز به كدگذاري برگشت ناپذير داشته باشيد يكي از بهترين گزينه هاست.

الگوریتمی داریم که بتونیم باهاش هم کد کنیم هم دیکد
بله. و بهترينش اوني هست كه خود شما بنويسيد

VDeveloper
16-03-2008, 22:02
بله. و بهترينش اوني هست كه خود شما بنويسيدلزوما اینطور نیست. مثلا Public Key Cryptography یک روش شناخته شده هست. خیلی از شرکت های معروف هم برای کارهای بسیار مهم تجاری ازش استفاده می کنند.کی می تونه مثلا یه کلید 1024 بیتی رو بشکونه؟! الان برای فعالیت های تجاری مهم روی وب از همین الگوریتم با کلیدهای 128 بیتی استفاده میشه. اینجا الگوریتم نیست که مهمه، بلکه کلید هست که اهمیت داره. مبحث کرک نیست که بگیم هرچی کدت من درآوردی تر باشه، بهتر هست. الگوریتم های رمزنگاری معروفی که به طور معمول همه جا می بینید، نتیجه تلاش و تحقیق گروهی از بهترین دانشمندان ریاضی و متخصصین رمزنگاری هست و سالهاست که تلاش میشه راه نفوذی بهشون پیدا کرد.
قبلا هم گفتم، تنها مورد استثناء داده های حساس مملکتی و نظامی هست. نه اینکه یک کشور میتونه لزوما الگوریتم بهتری بسازه، ولی حداقلش متخصصین کشورهای متخاصم با یک شاه کلید توی چند دقیقه کد رو باز نمی کنند. متاسفانه اکثر استانداردهای معروف رمزنگاری یا مستقیما توسط NSA ارائه شدند، یا کارشناسان دخیل در آنها به نوعی با NSA در ارتباط بودند. بعید هست که NSA چیزی بسازه که خودش نتونه واردش بشه.
نتیجه اعتماد به همچین روش های استانداردی در سطح فعالیت های نظامی و اطلاعاتی میشه این:


Crypto AG was an old and venerable firm, and Switzerland was a neutral country. So Crypto AG's enciphering devices for voice communication and digital data networks were popular, and customers came from 130 countries. These included the Vatican, as well the governments of Iraq, Iran, and Libya. Such countries were naturally skeptical of cryptographic devices sold in many NATO countries, so turned to relatively neutral Switzerland for communication security.
Iran demonstrated its suspicion about the source of the leaks, when it arrested Hans Buehler, a top salesman for Crypto AG, in Teheran on March 18, 1992. During his nine and a half months of solitary confinement in Evin prison in Teheran, Buehler was questioned again and again whether he had leaked Teheran's codes or Libya's keys to Western powers. Luckily Buehler didn't know anything. He in fact believed in his own sales pitch that Crypto AG was a neutral company and its equipment was the best. They were Swiss, after all. [3]
Crypto AG eventually paid one million dollars for Buehler's release in January 1993, then promptly fired him once they had reassured themselves that he hadn't revealed anything important under interrogation, and because Buehler had begun to ask some embarrassing questions. Then reports appeared on Swiss television, Swiss Radio International, all the major Swiss papers, and in German magazines like Der Spiegel. Had Crypto AG's equipment been spiked by Western intelligence services? the media wanted to know. The answer was Yes [4].
Swiss television traced the ownership of Crypto AG to a company in Liechtenstein, and from there back to a trust company in Munich. A witness appearing on Swiss television explained the real owner was the German government--the Federal Estates Administration. [5]
According to Der Spiegel, all but 6 of the 6000 shares of Crypto AG were at one time owned by Eugen Freiberger, who resided in Munich and was head of the Crypto AG managing board in 1982. Another German, Josef Bauer, an authorized tax agent of the Muenchner Treuhandgesellschaft KPMG, and who was elected to the managing board in 1970, stated that his mandate had come from the German company Siemens. Other members of Crypto AG's management had also worked at Siemens. Was the German secret service, the Bundesnachrichtendienst (BND), hiding behind the Siemens' connection?
So it would seem. Der Spiegel reported that in October 1970, a secret meeting of the BND had discussed how the Swiss company Graettner could be guided into closer cooperation with Crypto AG, or could even merged with it. The BND additionally considered how "the Swedish company Ericsson could be influenced through Siemens to terminate its own cryptographic business."


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید


ولی همچین چیزی برای مورد این دوستمون مصداق نداره. از طرفی نوشتن الگوریتمی بهتر از الگوریتم های معروفی مثل Public Key Cryptography کار یک نفر دو نفر نیست!

F A R H A D
17-03-2008, 09:55
لزوما اینطور نیست. مثلا Public Key Cryptography یک روش شناخته شده هست
سوال اين بود كه هم encode هم decode
پس اگر Cryptography امكان decode نداره چه لزومي به استفاده براي دوستمون داره؟

VDeveloper
17-03-2008, 16:47
سوال اين بود كه هم encode هم decode
پس اگر Cryptography امكان decode نداره چه لزومي به استفاده براي دوستمون داره؟
مگه من گفتم Public Key Cryptography یک روش برگشت ناپذیر هست؟!! در این روش شما یک Private Key و یک Public Key دارید که در واقع دو عدد اول بسیار بزرگ هستند. هر پیامی که با Private Key شما رمز بشه، فقط با Public Key شما باز میشه، به این ترتیب گیرنده می تونه مطمئن باشه که پیام از طرف شما فرستاده شده. از طرفی اگر پیام با Public Key گیرنده رمز شده باشه، فقط فردی که Private Key مربوط به آن را داره می تونه پیام رو باز کنه، به این ترتیب شما می تونید مطمئن باشید که پیام توسط افراد دیگه مشاهده نمیشه. حالا اگر پیامی با Private Key فرستند و سپس با Public Key گیرنده رمز بشه، هم فرستده میتونه مطمئن باشه که پیام فقط توسط گیرنده باز میشه، هم گیرنده موقع خواندن پیام می تونه مطمئن باشه که پیام توسط فرستده مورد نظر ارسال شده.
این روش ربطی به الگوریتم های ساخت Hash Code نداره و کاملا مربوط به سوال کاربر مربوطه هست.

F A R H A D
17-03-2008, 16:56
ببين چقدر خوبه كه واضح توضيح بدي .... . حل شد

VDeveloper
18-03-2008, 01:26
ببين چقدر خوبه كه واضح توضيح بدي .... . حل شد
مشکل از توضیح من نبود، برادر. مشکل از گیرندگی شمابود. وقتی من به این صراحت اسم Public Key Cryptography رو آوردم، پیش فرض من این بود که جنابعالی قبل از پست زدن حداقل یه سرچی درباره اش می کنید، یا حداقل اطلاعی ازش دارید!
در ضمن، بحث من در رد پیشنهاد شما که گفته بودید، "بله. و بهترينش اوني هست كه خود شما بنويسيد" مطرح شد. که نمیدونم چطور از همچین بحثی به "Cryptography امكان decode نداره" رسیدید!

موفق باشید

F A R H A D
18-03-2008, 08:08
نمیدونم چطور از همچین بحثی به "Cryptography امكان decode نداره" رسیدید!

از اينجا:

لزوما اینطور نیست. مثلا Public Key Cryptography یک روش شناخته شده هست. خیلی از شرکت های معروف هم برای کارهای بسیار مهم تجاری ازش استفاده می کنند.کی می تونه مثلا یه کلید 1024 بیتی رو بشکونه؟
اما اگر همون موقع مي گفتيد:

در این روش شما یک Private Key و یک Public Key دارید که در واقع دو عدد اول بسیار بزرگ هستند. هر پیامی که با Private Key شما رمز بشه، فقط با Public Key شما باز میشه، به این ترتیب گیرنده می تونه مطمئن باشه که پیام از طرف شما فرستاده شده
ديگه نه مشكلي در توضيح شما بود و نه در گيرندگي بنده.
موفق باشي

VDeveloper
18-03-2008, 16:51
از اينجا
گفتم که تصور من این بود که شما قبل از اظهار نظر، حداقل شناخت مقدماتی از همچین روشی دارید. وقتی من میگم "کلید" و در جای دیگه میگم "اینجا الگوریتم نیست که مهمه، بلکه کلید هست که اهمیت داره" دیگه ابهامی باقی نمیمونه. از طرفی مفهوم کلید واضح هست. کلید برای باز کردن قفل، پیدا کردن راه حل یک مسئله و غیره کاربرد داره. پس وقتی گفته میشه کلید، باید چیزی هم باشه که بشه با اون کلید بازش کرد. خود کلید رو که باز نمی کنند!
در هر حال، همونطور که گفتم، پیش فرض این بود که شمایک مقدماتی از این روش ها و تفاوت رمزنگاری با Hash Code ساختند رو میدونید.

بگذریم

F A R H A D
19-03-2008, 23:52
بگذریم
خدمتتون عارضم که ... میگذریم :d