谁能提供一些加密、解密技术文章算法和资料?

时间:2022-05-11 20:28:31
我学习一下加密解密,准备自己做一个小软件,谁能给我提供一点资料啊,要有加密解密的原理和常用的算法,给分。

5 个解决方案

#1


我看过一本有关的,好像是<现代密码学算>什么的书,里面有所有的现在常用的算法,思想,.不过要很好的数学.我是看了一点就看不下去了.但可以看看一些思想.看那本书很花时间的.
我看实际一点的不如看一些解密的软件介绍,一般都会说出加密的原理.易懂.当然,算法要自己想了

#2


关于个人软件的保护
转帖过来一篇软件保护的建议。不过它也提到了使用成熟的密码学技术。看来密码学这个学科真的是大有可为!
啊哈哈哈哈。 仰天长笑。 

--------------------------------------------------------------------------------------------------------------

  下面给出关于软件保护的一般性建议,这些都是无数人经验的总结。程序员在设计自己的保护方式时最好能够遵守这里给出的准则,这样会提高软件的保护强度。 

(1)软件最终发行之前一定要将可执行程序进行加壳/压缩,使得解密者无法直接修改程序。如果时间允许并且有相应的技术能力,最好是设计自己的加壳/压缩方法。如果采用现成的加壳工具,最好不要选择流行的工具,因为这些工具已被广泛深入地加以研究,有了通用的脱壳/解压办法。另外,最好采用两种以上的不同的工具来对程序进行加壳/压缩,并尽可能地利用这些工具提供的反跟踪特性。
 [什么叫加壳??? ]

(2)增加对软件自身的完整性检查。这包括对磁盘文件和内存映像的检查,以防止有人未经允许修改程序以达到破解的目的。DLL和EXE之间可以互相检查完整性。

(3)不要采用一目了然的名字来命名函数和文件,如IsLicensedVersion( )、key.dat等。所有与软件保护相关的字符串都不能以明文形式直接存放在可执行文件中,这些字符串最好是动态生成。

(4)尽可能少地给用户提示信息,因为这些蛛丝马迹都可能导致解密者直接深入到保护的核心。比如,当检测到破解企图之后,不要立即给用户提示信息,而是在系统的某个地方做一个记号,随机地过一段时间后使软件停止工作,或者装作正常工作但实际上却在所处理的数据中加入了一些垃圾。

(5)将注册码、安装时间记录在多个不同的地方。[机灵啊~~~~~~~~~~~]

(7)检查注册信息和时间的代码越分散越好。不要调用同一个函数或判断同一个全局标志,因为这样做的话只要修改了一个地方则全部都被破解了。

(8)不要依赖于GetLocalTime( )、GetSystemTime( )这样众所周知的函数来获取系统时间,可以通过读取关键的系统文件的修改时间来得到系统时间的信息。

(9)如果有可能的话,可以采用联网检查注册码的方法,且数据在网上传输时要加密。[赞成!]

(10)除了加壳/压缩之外,还需要自己编程在软件中嵌入反跟踪的代码,以增加安全性。

(11)在检查注册信息的时候插入大量无用的运算以误导解密者,并在检查出错误的注册信息之后加入延时。
[够狠!搞得别个云里雾里~~~~~~~~]

(12)给软件保护加入一定的随机性,比如除了启动时检查注册码之外,还可以在软件运行的某个时刻随机地检查注册码。随机值还可以很好地防止那些模拟工具,如软件狗模拟程序。

(13)如果采用注册码的保护方式,最好是一机一码,即注册码与机器特征相关,这样一台机器上的注册码就无法在另外一台机器上使用,可以防止有人散播注册码,并且机器号的算法不要太迷信硬盘序列号,因用相关工具可以修改其值。

(14)如果试用版与正式版是分开的两个版本,且试用版的软件没有某项功能,则不要仅仅使相关的菜单变灰,而是彻底删除相关的代码,使得编译后的程序中根本没有相关的功能代码。

(15)如果软件中包含驱动程序,则最好将保护判断加在驱动程序中。因为驱动程序在访问系统资源时受到的限制比普通应用程序少得多,这也给了软件设计者发挥的余地。

(16)如果采用keyfile的保护方式,则keyfile的尺寸不能太小,可将其结构设计得比较复杂,在程序中不同的地方对keyfile的不同部分进行复杂的运算和检查。

(17)自己设计的检查注册信息的算法不能过于简单,最好是采用比较成熟的密码学算法。可以在网上找到大量的源码。
[怎么找? 可以到http://www.nist.com去看看。那里各种加密算法的算法描述和程序源码都比较齐全,这个毕竟是老美的国家标准,或者去http://www.xygu.com,那里的资料也会越来越齐全! 啊哈哈哈~~~~~~~~~~~我们一直在努力!]

#3


如有谁有资料,:foot@21cn.com

#4


刚才去了那个论坛,没有看到什么东西啊
另:楼上的那位是不是在湖南啊

#5


www.pediy.com

#1


我看过一本有关的,好像是<现代密码学算>什么的书,里面有所有的现在常用的算法,思想,.不过要很好的数学.我是看了一点就看不下去了.但可以看看一些思想.看那本书很花时间的.
我看实际一点的不如看一些解密的软件介绍,一般都会说出加密的原理.易懂.当然,算法要自己想了

#2


关于个人软件的保护
转帖过来一篇软件保护的建议。不过它也提到了使用成熟的密码学技术。看来密码学这个学科真的是大有可为!
啊哈哈哈哈。 仰天长笑。 

--------------------------------------------------------------------------------------------------------------

  下面给出关于软件保护的一般性建议,这些都是无数人经验的总结。程序员在设计自己的保护方式时最好能够遵守这里给出的准则,这样会提高软件的保护强度。 

(1)软件最终发行之前一定要将可执行程序进行加壳/压缩,使得解密者无法直接修改程序。如果时间允许并且有相应的技术能力,最好是设计自己的加壳/压缩方法。如果采用现成的加壳工具,最好不要选择流行的工具,因为这些工具已被广泛深入地加以研究,有了通用的脱壳/解压办法。另外,最好采用两种以上的不同的工具来对程序进行加壳/压缩,并尽可能地利用这些工具提供的反跟踪特性。
 [什么叫加壳??? ]

(2)增加对软件自身的完整性检查。这包括对磁盘文件和内存映像的检查,以防止有人未经允许修改程序以达到破解的目的。DLL和EXE之间可以互相检查完整性。

(3)不要采用一目了然的名字来命名函数和文件,如IsLicensedVersion( )、key.dat等。所有与软件保护相关的字符串都不能以明文形式直接存放在可执行文件中,这些字符串最好是动态生成。

(4)尽可能少地给用户提示信息,因为这些蛛丝马迹都可能导致解密者直接深入到保护的核心。比如,当检测到破解企图之后,不要立即给用户提示信息,而是在系统的某个地方做一个记号,随机地过一段时间后使软件停止工作,或者装作正常工作但实际上却在所处理的数据中加入了一些垃圾。

(5)将注册码、安装时间记录在多个不同的地方。[机灵啊~~~~~~~~~~~]

(7)检查注册信息和时间的代码越分散越好。不要调用同一个函数或判断同一个全局标志,因为这样做的话只要修改了一个地方则全部都被破解了。

(8)不要依赖于GetLocalTime( )、GetSystemTime( )这样众所周知的函数来获取系统时间,可以通过读取关键的系统文件的修改时间来得到系统时间的信息。

(9)如果有可能的话,可以采用联网检查注册码的方法,且数据在网上传输时要加密。[赞成!]

(10)除了加壳/压缩之外,还需要自己编程在软件中嵌入反跟踪的代码,以增加安全性。

(11)在检查注册信息的时候插入大量无用的运算以误导解密者,并在检查出错误的注册信息之后加入延时。
[够狠!搞得别个云里雾里~~~~~~~~]

(12)给软件保护加入一定的随机性,比如除了启动时检查注册码之外,还可以在软件运行的某个时刻随机地检查注册码。随机值还可以很好地防止那些模拟工具,如软件狗模拟程序。

(13)如果采用注册码的保护方式,最好是一机一码,即注册码与机器特征相关,这样一台机器上的注册码就无法在另外一台机器上使用,可以防止有人散播注册码,并且机器号的算法不要太迷信硬盘序列号,因用相关工具可以修改其值。

(14)如果试用版与正式版是分开的两个版本,且试用版的软件没有某项功能,则不要仅仅使相关的菜单变灰,而是彻底删除相关的代码,使得编译后的程序中根本没有相关的功能代码。

(15)如果软件中包含驱动程序,则最好将保护判断加在驱动程序中。因为驱动程序在访问系统资源时受到的限制比普通应用程序少得多,这也给了软件设计者发挥的余地。

(16)如果采用keyfile的保护方式,则keyfile的尺寸不能太小,可将其结构设计得比较复杂,在程序中不同的地方对keyfile的不同部分进行复杂的运算和检查。

(17)自己设计的检查注册信息的算法不能过于简单,最好是采用比较成熟的密码学算法。可以在网上找到大量的源码。
[怎么找? 可以到http://www.nist.com去看看。那里各种加密算法的算法描述和程序源码都比较齐全,这个毕竟是老美的国家标准,或者去http://www.xygu.com,那里的资料也会越来越齐全! 啊哈哈哈~~~~~~~~~~~我们一直在努力!]

#3


如有谁有资料,:foot@21cn.com

#4


刚才去了那个论坛,没有看到什么东西啊
另:楼上的那位是不是在湖南啊

#5


www.pediy.com