【ios车牌识别源码】【网页源码分析还原】【ecshop商城系统源码】biginteger 源码

时间:2024-12-24 03:55:47 编辑:nginx rtmp源码分析 来源:轮播jq源码

1.如何实现用javascript实现rsa加解密
2.三种大数相乘算法
3.Netty中的channelRead和messageReceived的区别
4.我想把java文件先加密然后打包,源码请高手指教怎么加密,源码ios车牌识别源码有那种好的源码网页源码分析还原加密算法吗?
5.关于java中DecimalFormat的问题。

biginteger 源码

如何实现用javascript实现rsa加解密

       å…·ä½“实现思路如下:

       1。服务端生成公钥与私钥,保存。

       2。客户端在请求到登录页面后,随机生成一字符串。

       3。后此随机字符串作为密钥加密密码,再用从服务端获取到的公钥加密生成的随机字符串。

       4。将此两段密文传入服务端,服务端用私钥解出随机字符串,再用此私钥解出加密的密文。

       è¿™å…¶ä¸­æœ‰ä¸€ä¸ªå…³é”®æ˜¯è§£å†³æœåŠ¡ç«¯çš„公钥,传入客户端,客户端用此公钥加密字符串后,后又能在服务端用私钥解出。

       æ­¤æ–‡å³ä¸ºå®žçŽ°æ­¤æ­¥è€Œä½œã€‚

       åŠ å¯†ç®—法为RSA:

       1。服务端的RSA  java实现。

/** 

        *  

        */  

       package com.sunsoft.struts.util;  

         

       import java.io.ByteArrayOutputStream;  

       import java.io.FileInputStream;  

       import java.io.FileOutputStream;  

       import java.io.ObjectInputStream;  

       import java.io.ObjectOutputStream;  

       import java.math.BigInteger;  

       import java.security.KeyFactory;  

       import java.security.KeyPair;  

       import java.security.KeyPairGenerator;  

       import java.security.NoSuchAlgorithmException;  

       import java.security.PrivateKey;  

       import java.security.PublicKey;  

       import java.security.SecureRandom;  

       import java.security.interfaces.RSAPrivateKey;  

       import java.security.interfaces.RSAPublicKey;  

       import java.security.spec.InvalidKeySpecException;  

       import java.security.spec.RSAPrivateKeySpec;  

       import java.security.spec.RSAPublicKeySpec;  

         

       import javax.crypto.Cipher;  

         

         

         

       /** 

        * RSA å·¥å…·ç±»ã€‚提供加密,解密,生成密钥对等方法。 

        * éœ€è¦åˆ°ment go to

       * Window - Preferences - Java - Code Style - Code Templates

       */

       public class RSA {

       /

**

       * BigInteger.ZERO

       */

       private static final BigInteger ZERO = BigInteger.ZERO;

       /

**

       * BigInteger.ONE

       */

       private static final BigInteger ONE = BigInteger.ONE;

       /

**

       * Pseudo BigInteger.TWO

       */

       private static final BigInteger TWO = new BigInteger("2");

       private BigInteger myKey;

       private BigInteger myMod;

       private int blockSize;

       public RSA (BigInteger key,源码ecshop商城系统源码 BigInteger n, int b) {

       myKey = key;

       myMod = n;

       blockSize = b;

       }

       public void encodeFile (String filename) {

       byte[] bytes = new byte[blockSize / 8 + 1];

       byte[] temp;

       int tempLen;

       InputStream is = null;

       FileWriter writer = null;

       try {

       is = new FileInputStream(filename);

       writer = new FileWriter(filename + ".enc");

       }

       catch (FileNotFoundException e1){

       System.out.println("File not found: " + filename);

       }

       catch (IOException e1){

       System.out.println("File not found: " + filename + ".enc");

       }

       /

**

       * Write encoded message to 'filename'.enc

       */

       try {

       while ((tempLen = is.read(bytes, 1, blockSize / 8)) > 0) {

       for (int i = tempLen + 1; i < bytes.length; ++i) {

       bytes[i] = 0;

       }

       writer.write(encodeDecode(new BigInteger(bytes)) + " ");

       }

       }

       catch (IOException e1) {

       System.out.println("error writing to file");

       }

       /

**

       * Close input stream and file writer

       */

       try {

       is.close();

       writer.close();

       }

       catch (IOException e1) {

       System.out.println("Error closing file.");

       }

       }

       public void decodeFile (String filename) {

       FileReader reader = null;

       OutputStream os = null;

       try {

       reader = new FileReader(filename);

       os = new FileOutputStream(filename.replaceAll(".enc", ".dec"));

       }

       catch (FileNotFoundException e1) {

       if (reader == null)

       System.out.println("File not found: " + filename);

       else

       System.out.println("File not found: " + filename.replaceAll(".enc", "dec"));

       }

       BufferedReader br = new BufferedReader(reader);

       int offset;

       byte[] temp, toFile;

       StringTokenizer st = null;

       try {

       while (br.ready()) {

       st = new StringTokenizer(br.readLine());

       while (st.hasMoreTokens()){

       toFile = encodeDecode(new BigInteger(st.nextToken())).toByteArray();

       System.out.println(toFile.length + " x " + (blockSize / 8));

       if (toFile[0] == 0 && toFile.length != (blockSize / 8)) {

       temp = new byte[blockSize / 8];

       offset = temp.length - toFile.length;

       for (int i = toFile.length - 1; (i <= 0) && ((i + offset) <= 0); --i) {

       temp[i + offset] = toFile[i];

       }

       toFile = temp;

       }

       /*if (toFile.length != ((blockSize / 8) + 1)){

       temp = new byte[(blockSize / 8) + 1];

       System.out.println(toFile.length + " x " + temp.length);

       for (int i = 1; i < temp.length; i++) {

       temp[i] = toFile[i - 1];

       }

       toFile = temp;

       }

       else

       System.out.println(toFile.length + " " + ((blockSize / 8) + 1));*/

       os.write(toFile);

       }

       }

       }

       catch (IOException e1) {

       System.out.println("Something went wrong");

       }

       /

**

       * close data streams

       */

       try {

       os.close();

       reader.close();

       }

       catch (IOException e1) {

       System.out.println("Error closing file.");

       }

       }

       /

**

       * Performs <tt>base</tt>^<sup><tt>pow</tt></sup> within the modular

       * domain of <tt>mod</tt>.

       

*

       * @param base the base to be raised

       * @param pow the power to which the base will be raisded

       * @param mod the modular domain over which to perform this operation

       * @return <tt>base</tt>^<sup><tt>pow</tt></sup> within the modular

       * domain of <tt>mod</tt>.

       */

       public BigInteger encodeDecode(BigInteger base) {

       BigInteger a = ONE;

       BigInteger s = base;

       BigInteger n = myKey;

       while (!n.equals(ZERO)) {

       if(!n.mod(TWO).equals(ZERO))

       a = a.multiply(s).mod(myMod);

       s = s.pow(2).mod(myMod);

       n = n.divide(TWO);

       }

       return a;

       }

       }

       在这里提供两个版本的RSA算法JAVA实现的代码下载:

       1. 来自于 /code.aspx?ID= 的RSA算法实现源代码包:

       /rsa/

       

参考资料:

/product/showarticle.asp?id=

关于java中DecimalFormat的问题。

       把newSalary转为double型,源码元神本子源码然后再format就好了,源码任务类软件源码看源码就会知道,源码String类型是源码不被允许的

public final StringBuffer format(Object number,

                                            StringBuffer toAppendTo,

                                            FieldPosition pos) {

               if (number instanceof Long || number instanceof Integer ||

                          number instanceof Short || number instanceof Byte ||

                          number instanceof AtomicInteger ||

                          number instanceof AtomicLong ||

                          (number instanceof BigInteger &&

                           ((BigInteger)number).bitLength () < )) {

                   return format(((Number)number).longValue(), toAppendTo, pos);

               } else if (number instanceof BigDecimal) {

                   return format((BigDecimal)number, toAppendTo, pos);

               } else if (number instanceof BigInteger) {

                   return format((BigInteger)number, toAppendTo, pos);

               } else if (number instanceof Number) {

                   return format(((Number)number).doubleValue(), toAppendTo, pos);

               } else {

                   throw new IllegalArgumentException("Cannot format given Object as a Number");

               }

           }

搜索关键词:网址源码