KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > objectweb > proactive > ext > security > crypto > RandomLongGenerator


1 package org.objectweb.proactive.ext.security.crypto; /*
2 * ################################################################
3 *
4 * ProActive: The Java(TM) library for Parallel, Distributed,
5 * Concurrent computing with Security and Mobility
6 *
7 * Copyright (C) 1997-2002 INRIA/University of Nice-Sophia Antipolis
8 * Contact: proactive-support@inria.fr
9 *
10 * This library is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU Lesser General Public
12 * License as published by the Free Software Foundation; either
13 * version 2.1 of the License, or any later version.
14 *
15 * This library is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 * Lesser General Public License for more details.
19 *
20 * You should have received a copy of the GNU Lesser General Public
21 * License along with this library; if not, write to the Free Software
22 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
23 * USA
24 *
25 * Initial developer(s): The ProActive Team
26 * http://www.inria.fr/oasis/ProActive/contacts.html
27 * Contributor(s):
28 *
29 * ################################################################
30 */

31
32 import java.security.*;
33
34
35 public class RandomLongGenerator {
36     private byte[] seed;
37     private SecureRandom secureRandom;
38
39     public RandomLongGenerator() {
40         secureRandom = new SecureRandom();
41     }
42
43     public long generateLong(int nbBytes) {
44         if (nbBytes > 8) {
45             nbBytes = 8;
46         }
47
48         seed = new byte[nbBytes];
49         seed = secureRandom.generateSeed(nbBytes);
50
51         long ra2 = 0;
52
53         for (int i = 0; i < 4; i++) {
54             ra2 = ra2 +
55                 ((Math.abs(new Byte JavaDoc(seed[i]).longValue())) * new Double JavaDoc(Math.pow(
56                         10, (-3 + (3 * (i + 1))))).longValue());
57         }
58
59         return ra2;
60     }
61 }
62
Popular Tags