高级java论文,计算机毕业论文(java)英文翻译--Java核心技术 卷Ⅱ高级特性

3a5429672e603c333e817469066cd8b7.gif计算机毕业论文(java)英文翻译--Java核心技术 卷Ⅱ高级特性

中文 3698 字 A.英文原文 Core Java, Volume II--Advanced Features When Java technology first appeared on the scene, the excitement was not about a well-crafted programming language but about the possibility of safely cuting applets that are delivered over the Internet see Volume I, Chapter 10 for more ination about applets. Obviously, delivering cutable applets is practical only when the recipients are sure that the code cant wreak havoc on their machines. For this reason, security was and is a major concern of both the designers and the users of Java technology. This means that unlike other languages and systems, where security was implemented as an afterthought or a reaction to break-ins, security mechanisms are an integral part of Java technology. Three mechanisms help ensure safety Language design features bounds checking on arrays, no unchecked type conversions, no pointer arithmetic, and so on. An access control mechanism that controls what the code can do such as file access, network access, and so on. Code signing, whereby code authors can use standard cryptographic algorithms to authenticate Java code. Then, the users of the code can determine exactly who created the code and whether the code has been altered after it was signed. Below, youll see the cryptographic algorithms supplied in the java.security package, which allow for code signing and user authentication. As we said earlier, applets were what started the craze over the Java plat. In practice, people discovered that although they could write animated applets like the famous nervous text applet, applets could not do a whole lot of useful stuff in the JDK 1.0 security model. For example, because applets under JDK 1.0 were so closely supervised, they couldnt do much good on a corporate intranet, even though relatively little risk attaches to cuting an applet from your companys secure intranet. It quickly became clear to Sun that for applets to become truly useful, it was important for users to be able to assign different levels of security, depending on where the applet originated. If an applet comes from a trusted supplier and it has not been tampered with, the user of that applet can then decide whether to give the applet more privileges. To give more trust to an applet, we need to know two things Where did the applet come from Was the code corrupted in transit In the past 50 years, mathematicians and computer scientists have developed sophisticated algorithms for ensuring the integrity of data and for electronic signatures. The java.security package contains implementations of many of these algorithms. Fortunately, you dont need to understand the underlying mathematics to use the algorithms in the java.security package. In the next sections, we show you how message digests can detect changes in data files and how digital signatures can prove the identity of the signer. A message digest is a digital fingerprint of a block of data. For example, the so-called SHA1 secure hash algorithm 1 condenses any data block, no matter how long, into a sequence of 160 bits 20 bytes. As with real fingerprints, one hopes that no two messages have the same SHA1 fingerprint. Of course, that cannot be truethere are only 2160 SHA1 fingerprints, so there must be some messages with the same fingerprint. But 2160 is so large that the probability of duplication occurring is negligible. How negligible According to James Walsh in True Odds How Risks Affect Your Everyday Life Merritt Publishing 1996, the chance that you will die from being struck by lightning is about one in 30,000. Now, think of nine other people, for example, your nine least favorite managers or professors. The chance that you and all of them will die from lightning strikes is higher than that of a forged message having the same SHA1 fingerprint as the original. Of course, more than ten people, none of whom you are likely to know, will die from lightning strikes. However, we are talking about the far slimmer chance that your particular choice of people will be wiped out. A message digest has two essential properties If one bit or several bits of the data are changed, then the message digest also changes. A forger who is in possession of a given message cannot construct a fake message that has the same message digest as the original. The second property is again a matter of probabilities, of course. Consider the following message by the billionaire fatherUpon my death, my property shall be divided equally among my children; however, my son George shall receive nothing. That message has an SHA1 fingerprint of 2D 8B 35 F3 BF 49 CD B1 94 04 E0 66 21 2B 5E 57 70 49 E1 7E The distrustful father has deposited the message with one attorney and the fingerprint with another. Now, suppose George can bribe the lawyer holding the message. He wants to change the message so that Bill gets nothing. Of course, that changes the fingerprint to a completely different bit pattern 2A 33 0B 4B B3 FE CC 1C 9D 5C 01 A7 09 51 0B 49 AC 8F 98 92 Can George find some other wording that matches the fingerprint If he had been the proud owner of a billion computers from the time the Earth was ed, each computing a million messages a second, he would not yet have found a message he could substitute. A number of algorithms have been designed to compute these message digests. The two best-known are SHA1, the secure hash algorithm developed by the National Institute of Standards and Technology, and MD5, an algorithm invented by Ronald Rivest of MIT. Both algorithms scramble the bits of a message in ingenious ways. For details about these algorithms, see, for example, Cryptography and Network Security, 4th ed., by William Stallings Prentice Hall 2005. Note that recently, subtle regularities have been discovered in both algorithms. At this point, most cryptographers recommend avoiding MD5 and using SHA1 until a stronger alternative becomes available. See http// for more ination. The Java programming language implements both SHA1 and MD5. The MessageDigest class is a factory for creating objects that encapsulate the fingerprinting algorithms. It has a static , called getInstance, that returns an object of a class that extends the MessageDigest class. This means the MessageDigest class serves double duty As a factory class As the superclass for all message digest algorithms For example, here is how you obtain an object that can compute SHA fingerprints MessageDigest alg MessageDigest.getInstanceSHA-1; To get an object that can compute MD5, use the string MD5 as the argument to getInstance. After you have obtained a MessageDigest object, you feed it all the bytes in the message by repeatedly calling the update . For example, the following code passes all bytes in a file to the alg object just created to do the fingerprinting Stream in . . . int ch; while ch in.read -1 alg.updatebyte ch; Alternatively, if you have the bytes in an array, you can update the entire array at once byte bytes . . .; alg.updatebytes; When you are done, call the digest . This pads the as required by the fingerprinting algorithmdoes the computation, and returns the digest as an array of bytes. byte hash alg.digest; The program in Listing 9-15 computes a message digest, using either SHA or MD5. You can load the data to be digested from a file, or you can type a message in the text area. Message Signing In the last section, you saw how to compute a message digest, a fingerprint for the original message. If the message is altered, then the fingerprint of the altered message will not match the fingerprint of the original. If the message and its fingerprint are delivered separately, then the recipient can check whether the message has been tampered with. However, if both the message and the fingerprint were intercepted, it is an easy matter to modify the message and then recompute the fingerprint. After all, the message digest algorithms are publicly known, and they dont require secret keys. In that case, the recipient of the forged message and the recomputed fingerprint would never know that the message has been altered. Digital signatures solve this problem. To help you understand how digital signatures work, we explain a few concepts from the field called public key cryptography. Public key cryptography is based on the

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值