IT. Expert System.

Android Reference

SecureRandom


java.security

Class SecureRandom

  • All Implemented Interfaces:
    Serializable


    public class SecureRandom
    extends Random
    This class generates cryptographically secure pseudo-random numbers.

    Supported Algorithms

    • SHA1PRNG: Based on SHA-1. Not guaranteed to be compatible with the SHA1PRNG algorithm on the reference implementation.

    The default algorithm is defined by the first SecureRandomSpi provider found in the VM's installed security providers. Use Security to install custom SecureRandomSpi providers.

    Seeding SecureRandom may be insecure

    A seed is an array of bytes used to bootstrap random number generation. To produce cryptographically secure random numbers, both the seed and the algorithm must be secure.

    By default, instances of this class will generate an initial seed using an internal entropy source, such as /dev/urandom. This seed is unpredictable and appropriate for secure use.

    You may alternatively specify the initial seed explicitly with the seeded constructor or by calling setSeed(byte[]) before any random numbers have been generated. Specifying a fixed seed will cause the instance to return a predictable sequence of numbers. This may be useful for testing but it is not appropriate for secure use.

    It is dangerous to seed SecureRandom with the current time because that value is more predictable to an attacker than the default seed.

    Calling setSeed(byte[]) on a SecureRandom after it has been used to generate random numbers (ie. calling nextBytes(byte[])) will supplement the existing seed. This does not cause the instance to return a predictable numbers, nor does it harm the security of the numbers generated.

    See Also:
    Serialized Form
    • Constructor Summary

      Constructors
      Modifier Constructor and Description
      SecureRandom()
      Constructs a new SecureRandom that uses the default algorithm.
      SecureRandom(byte[] seed)
      Constructs a new seeded SecureRandom that uses the default algorithm.
      protected SecureRandom(SecureRandomSpi secureRandomSpi, Provider provider)
      Constructs a new instance of SecureRandom using the given implementation from the specified provider.
    • Method Summary

      Methods
      Modifier and Type Method and Description
      byte[] generateSeed(int numBytes)
      Generates and returns the specified number of seed bytes, computed using the seed generation algorithm used by this SecureRandom.
      String getAlgorithm()
      Returns the name of the algorithm of this SecureRandom.
      static SecureRandom getInstance(String algorithm)
      Returns a new instance of SecureRandom that utilizes the specified algorithm.
      static SecureRandom getInstance(String algorithm, Provider provider)
      Returns a new instance of SecureRandom that utilizes the specified algorithm from the specified provider.
      static SecureRandom getInstance(String algorithm, String provider)
      Returns a new instance of SecureRandom that utilizes the specified algorithm from the specified provider.
      Provider getProvider()
      Returns the provider associated with this SecureRandom.
      static byte[] getSeed(int numBytes)
      Generates and returns the specified number of seed bytes, computed using the seed generation algorithm used by this SecureRandom.
      protected int next(int numBits)
      Generates and returns an int containing the specified number of random bits (right justified, with leading zeros).
      void nextBytes(byte[] bytes)
      Generates and stores random bytes in the given byte[] for each array element.
      void setSeed(byte[] seed)
      Seeds this SecureRandom instance with the specified seed.
      void setSeed(long seed)
      Seeds this SecureRandom instance with the specified eight-byte seed.
    • Constructor Detail

      • SecureRandom

        public SecureRandom()
        Constructs a new SecureRandom that uses the default algorithm.
      • SecureRandom

        protected SecureRandom(SecureRandomSpi secureRandomSpi,
                    Provider provider)
        Constructs a new instance of SecureRandom using the given implementation from the specified provider.
        Parameters:
        secureRandomSpi - the implementation.
        provider - the security provider.
    • Method Detail

      • getInstance

        public static SecureRandom getInstance(String algorithm)
                                        throws NoSuchAlgorithmException
        Returns a new instance of SecureRandom that utilizes the specified algorithm.
        Parameters:
        algorithm - the name of the algorithm to use.
        Returns:
        a new instance of SecureRandom that utilizes the specified algorithm.
        Throws:
        NoSuchAlgorithmException - if the specified algorithm is not available.
        NullPointerException - if algorithm is null.
      • getInstance

        public static SecureRandom getInstance(String algorithm,
                               Provider provider)
                                        throws NoSuchAlgorithmException
        Returns a new instance of SecureRandom that utilizes the specified algorithm from the specified provider.
        Parameters:
        algorithm - the name of the algorithm to use.
        provider - the security provider.
        Returns:
        a new instance of SecureRandom that utilizes the specified algorithm from the specified provider.
        Throws:
        NoSuchAlgorithmException - if the specified algorithm is not available.
        NullPointerException - if algorithm is null.
        IllegalArgumentException - if provider == null
      • getProvider

        public final Provider getProvider()
        Returns the provider associated with this SecureRandom.
        Returns:
        the provider associated with this SecureRandom.
      • getAlgorithm

        public String getAlgorithm()
        Returns the name of the algorithm of this SecureRandom.
        Returns:
        the name of the algorithm of this SecureRandom.
      • nextBytes

        public void nextBytes(byte[] bytes)
        Generates and stores random bytes in the given byte[] for each array element.
        Overrides:
        nextBytes in class Random
        Parameters:
        bytes - the byte[] to be filled with random bytes.
      • next

        protected final int next(int numBits)
        Generates and returns an int containing the specified number of random bits (right justified, with leading zeros).
        Overrides:
        next in class Random
        Parameters:
        numBits - number of bits to be generated. An input value should be in the range [0, 32].
        Returns:
        an int containing the specified number of random bits.
      • getSeed

        public static byte[] getSeed(int numBytes)
        Generates and returns the specified number of seed bytes, computed using the seed generation algorithm used by this SecureRandom.
        Parameters:
        numBytes - the number of seed bytes.
        Returns:
        the seed bytes
      • generateSeed

        public byte[] generateSeed(int numBytes)
        Generates and returns the specified number of seed bytes, computed using the seed generation algorithm used by this SecureRandom.
        Parameters:
        numBytes - the number of seed bytes.
        Returns:
        the seed bytes.


Content

Android Reference

Java basics

Java Enterprise Edition (EE)

Java Standard Edition (SE)

SQL

HTML

PHP

CSS

Java Script

MYSQL

JQUERY

VBS

REGEX

C

C++

C#

Design patterns

RFC (standard status)

RFC (proposed standard status)

RFC (draft standard status)

RFC (informational status)

RFC (experimental status)

RFC (best current practice status)

RFC (historic status)

RFC (unknown status)

IT dictionary

License.
All information of this service is derived from the free sources and is provided solely in the form of quotations. This service provides information and interfaces solely for the familiarization (not ownership) and under the "as is" condition.
Copyright 2016 © ELTASK.COM. All rights reserved.
Site is optimized for mobile devices.
Downloads: 1155 / 248361761. Delta: 0.02940 с