JavaTM 2
Platform
Std.  Ed.  v1. 4.0

java.security
Ŭ·¡½º SecureRandom

java.lang.Object 
  |
  +--java.util.Random 
        |
        +--java.security.SecureRandom
¸ðµç ±¸Çö ÀÎÅÍÆäÀ̽º:
Serializable

public class SecureRandom
extends Random

ÀÌ Å¬·¡½º¿¡¼­´Â ¾ÏÈ£¿ëÀ¸·Î °­È­ÇÑ À¯»ç ³­¼ö Á¦³×·¹ÀÌÅÍ (PRNG)¸¦ Á¦°øÇÕ´Ï´Ù. ¾ÏÈ£¿ëÀ¸·Î °­È­ÇÑ À¯»ç ³­¼ö Á¦³×·¹ÀÌÅÍ´Â ¡¸FIPS 140-2, Security Requirements for Cryptographic Modules¡¹ ÀÇ ¼½¼Ç 4.9. 1 À¸·Î ÁöÁ¤µÇ°í ÀÖ´Â Á¤Àû ³­¼ö Á¦³×·¹ÀÌÅÍÀÇ Å×½ºÆ®¿¡ ÃÖÀúÇÑ ÀûÇÕÇϰí ÀÖ½À´Ï´Ù. ¶Ç, SecureRandom ¿¡¼­´Â °áÁ¤¼ºÀÌ ¾Æ´Ñ Ãâ·ÂÀ» »ý¼ºÇÏÁö ¾ÊÀ¸¸é ¾ÈµÇ¾î, ±× ¶§¹®¿¡, ¹èÁ¤ ¼ÒÀç´Â ¿¹Ãø ºÒ°¡´ÉÇØ, SecureRandom ÀÇ Ãâ·ÂÀº ¡¸RFC 1750: Randomness Recommendations for Security¡¹ ·Î ±â¼úµÇ°í ÀÖ´Ù, ¾ÏÈ£¿ëÀ¸·Î °­È­µÈ ¼øÂ÷ ¼ø¼­ÀÏ Çʿ䰡 ÀÖ½À´Ï´Ù.

Java Security API ÀÇ ¾Ë°í¸®Áò º£À̽º¿ÜÀÇ Å¬·¡½º¿Í °°ÀÌ, SecureRandom Ŭ·¡½º´Â ±¸Çö¿¡ ÀÇÁ¸ÇÏÁö ¾Ê´Â ¾Ë°í¸®ÁòÀ» Á¦°øÇÕ´Ï´Ù. Áï, È£ÃâÃø (¾îÇø®ÄÉÀ̼ÇÀÇ ÄÚµå)Àº ƯÁ¤ÀÇ PRNG ¾Ë°í¸®ÁòÀ» ¿ä±¸Çϸé, ±× ¾Ë°í¸®Áò¿¡ ´ëÀÀÇÏ´Â SecureRandom ¿ÀºêÁ§Æ®¸¦ ¹ÞÀ» ¼ö°¡ ÀÖ½À´Ï´Ù. ÇÊ¿äÇϸé, ƯÁ¤ÀÇ ÇÁ·Î¹ÙÀÌ´õ·ÎºÎÅÍÀÇ Æ¯Á¤ÀÇ ¾Ë°í¸®ÁòÀ» ¿ä±¸ÇÏ´Â Àϵµ °¡´ÉÇÕ´Ï´Ù. ÀÚ¼¼ÇÑ °ÍÀº getInstance ¸Þ¼Òµå¸¦ ÂüÁ¶ÇØ ÁÖ¼¼¿ä.

SecureRandom ¿ÀºêÁ§Æ®¸¦ ¿ä±¸ÇÏ·Á¸é 2 °³ÀÇ ¹æ¹ýÀÌ ÀÖ½À´Ï´Ù. 1 krÀº ¾Ë°í¸®ÁòÀÇ À̸§¸¸À» ÁöÁ¤ÇÏ´Â ¹æ¹ý, ÀÌÁ¦(¹ú½á) 1 krÀº ¾Ë°í¸®ÁòÀÇ À̸§°ú ÆÐŰÁö ÇÁ·Î¹ÙÀÌ´õ¸¦ ÁöÁ¤ÇÏ´Â ¹æ¹ýÀÔ´Ï´Ù.

È£ÃâÃøÀÌ, ´ÙÀ½¿¡ ³ªÅ¸³»µµ·Ï(µíÀÌ) getInstance ¸Þ¼ÒµåÀÇ È£ÃâÀÇ °ð ³ªÁß¿¡ setSeed ¸Þ¼Òµå¸¦ È£ÃâÇÏ´Â °æ¿ì¸¦ Á¦¿ÜÇØ, SecureRandom ÀÇ ±¸ÇöÀº Á¦³×·¹ÀÌÅÍÀÇ ³»ºÎ »óŸ¦ ¿ÏÀüÇÏ°Ô ·£´ýÀ¸·Î ÇÏ·Á°í ½ÃµµÇÕ´Ï´Ù.

      SecureRandom random = SecureRandom.getInstance("SHA1PRNG");
      random.setSeed(seed);
 

È£ÃâÃøÀº getInstance ÀÇ È£Ãâ¿¡ ÀÇÇØ SecureRandom ¸¦ ÃëµæÇÑ µÚ,nextBytes ¸¦ È£ÃâÇØ ³­¼ö ¹ÙÀÌÆ®¸¦ »ý¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù.

      byte bytes[] = new byte[20];
      random.nextBytes(bytes);
 

È£ÃâÃøÀº ´ÙÀ½ÀÇ ¿¹ÀÇ °°°Ô generateSeed ¸Þ¼Òµå¸¦ È£ÃâÇØ, ÁöÁ¤µÈ ¼öÀÇ ¹èÁ¤ ¹ÙÀÌÆ®¸¦ »ý¼ºÇÒ ¼öµµ ÀÖ½À´Ï´Ù. »ý¼ºÇÑ ¹èÁ¤ ¹ÙÀÌÆ®´Â ´Ù¸¥ ³­¼ö Á¦³×·¹ÀÌÅ͸¦ ¹èÁ¤ ÇÏ´Â µîÀ» À§Çؼ­(¶§¹®¿¡) »ç¿ëÇÕ´Ï´Ù.

      byte seed[] = random.generateSeed(20);
 

°ü·Ã Ç׸ñ:
SecureRandomSpi , Random , Á÷·ÄÈ­ µÈ Çü½Ä

»ý¼ºÀÚÀÇ °³¿ä
  SecureRandom ()
          ÀÌ constructor¸¦ »ç¿ëÇϸé(ÀÚ), È£ÃâÃøÀº ±¸ÇöµÈ SecureRandom ¸¦ °¡Áö°í ÀÖ´Â ÀνºÅç ³¡³­ ±× Áß¿¡¼­, °¡Àå ¿ì¼±µµÀÇ ³ôÀº ÇÁ·Î¹ÙÀÌ´õ·ÎºÎÅÍ, SecureRandom ¿ÀºêÁ§Æ®¿Í ±× ±¸Çö Äڵ带 ÃëµæÇÒ ¼ö ÀÖ½À´Ï´Ù.
  SecureRandom (byte[] seed)
          ÀÌ constructor¸¦ »ç¿ëÇϸé(ÀÚ), È£ÃâÃøÀº ±¸ÇöµÈ SecureRandom ¸¦ °¡Áö°í ÀÖ´Â ÀνºÅç ³¡³­ ±× Áß¿¡¼­ ¿Íµµ ¿ì¼±µµÀÇ ³ôÀº ÇÁ·Î¹ÙÀÌ´õ·ÎºÎÅÍ, SecureRandom ¿ÀºêÁ§Æ®¿Í ±× ±¸Çö Äڵ带 ÃëµæÇÒ ¼ö ÀÖ½À´Ï´Ù.
protected SecureRandom (SecureRandomSpi  secureRandomSpi, Provider  provider)
          SecureRandom ¿ÀºêÁ§Æ®¸¦ ÀÛ¼ºÇÕ´Ï´Ù.
 
¸Þ¼ÒµåÀÇ °³¿ä
 byte[] generateSeed (int numBytes)
          ÁöÁ¤µÈ ¹ÙÀÌÆ®¼öÀÇ ¹èÁ¤ ¹ÙÀÌÆ®¸¦ µ¹·ÁÁÝ´Ï´Ù.
static SecureRandom getInstance (String  algorithm)
          ÁöÁ¤µÈ À¯»ç ³­¼ö Á¦³×·¹ÀÌÅÍ (PRNG) ¾Ë°í¸®ÁòÀ» ±¸ÇöÇÏ´Â SecureRandom ¿ÀºêÁ§Æ®¸¦ ÀÛ¼ºÇÕ´Ï´Ù.
static SecureRandom getInstance (String  algorithm, Provider  provider)
          ÁöÁ¤µÈ PRNG ¾Ë°í¸®Áò¿¡ ÀÇÇÑ SecureRandom ¿ÀºêÁ§Æ®¸¦ ÀÛ¼ºÇÕ´Ï´Ù.
static SecureRandom getInstance (String  algorithm, String  provider)
          ÁöÁ¤µÈ PRNG ¾Ë°í¸®Áò¿¡ ´ëÇÑ SecureRandom ¿ÀºêÁ§Æ®¸¦ ÀÛ¼ºÇÕ´Ï´Ù.
 Provider getProvider ()
          ÀÌ SecureRandom ¿ÀºêÁ§Æ®ÀÇ ÇÁ·Î¹ÙÀÌ´õ¸¦ µ¹·ÁÁÝ´Ï´Ù.
static byte[] getSeed (int numBytes)
          ÁöÁ¤µÈ ¹ÙÀÌÆ®¼öÀÇ ¹èÁ¤ ¹ÙÀÌÆ®¸¦ µ¹·ÁÁÝ´Ï´Ù.
protected  int next (int numBits)
          À¯Àú°¡ ÁöÁ¤ÇÑ ¼öÀÇ À¯»ç ³­¼ö ºñÆ® (right justify, Á¦·Î ³»ÀåÇϱâ)¸¦ Æ÷ÇÔÇÑ Á¤¼ö¸¦ »ý¼ºÇÕ´Ï´Ù.
 void nextBytes (byte[] bytes)
          À¯Àú°¡ ÁöÁ¤ÇÑ ¹ÙÀÌÆ®¼öÀÇ ³­¼ö ¹ÙÀÌÆ®¸¦ »ý¼ºÇÕ´Ï´Ù.
 void setSeed (byte[] seed)
          ³­¼ö ¿ÀºêÁ§Æ®¸¦ Àç¹èÁ¤ ÇÕ´Ï´Ù.
 void setSeed (long seed)
          ÁöÁ¤µÈ long seed ¿¡ Æ÷ÇԵǾî ÀÖ´Â 8 ¹ÙÀÌÆ®¸¦ »ç¿ëÇØ, ÀÌ ³­¼ö ¿ÀºêÁ§Æ®¸¦ Àç¹èÁ¤ ÇÕ´Ï´Ù.
 
Ŭ·¡½º java.util. Random ¿¡¼­ »ó¼Ó¹ÞÀº ¸Þ¼Òµå
nextBoolean , nextDouble , nextFloat , nextGaussian , nextInt , nextInt , nextLong
 
Ŭ·¡½º java.lang. Object ¿¡¼­ »ó¼Ó¹ÞÀº ¸Þ¼Òµå
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
 

»ý¼ºÀÚÀÇ »ó¼¼

SecureRandom

public SecureRandom()

ÀÌ constructor¸¦ »ç¿ëÇϸé(ÀÚ), È£ÃâÃøÀº ±¸ÇöµÈ SecureRandom ¸¦ °¡Áö°í ÀÖ´Â ÀνºÅç ³¡³­ ±× Áß¿¡¼­, °¡Àå ¿ì¼±µµÀÇ ³ôÀº ÇÁ·Î¹ÙÀÌ´õ·ÎºÎÅÍ, SecureRandom ¿ÀºêÁ§Æ®¿Í ±× ±¸Çö Äڵ带 ÃëµæÇÒ ¼ö ÀÖ½À´Ï´Ù.

ÀÌ SecureRandom ÀÇ ÀνºÅϽº´Â ¹èÁ¤ µÇ°í ÀÖÁö ¾Ê½À´Ï´Ù. SecureRandom ¿ÀºêÁ§Æ®¸¦ ¹èÁ¤ ÇÏ·Á¸é ,setSeed ¸Þ¼Òµå¸¦ È£ÃâÇÕ´Ï´Ù. setSeed °¡ ºÒ·Á °¡Áö ¾Ê¾Ò´ø °æ¿ì´Â ÃÖÃÊ·Î nextBytes ¸Þ¼Òµå¸¦ È£ÃâÇßÀ» ¶§¿¡, SecureRandom ¿ÀºêÁ§Æ®°¡ ±×°Í ÀÚ½ÅÀ» ¹èÁ¤ ÇÏ´Â °ÍÀ» °­Á¦ÇÕ´Ï´Ù.

ÀÌ constructor Àº ÇÏÀ§ ȣȯÀ» À§Çؼ­(¶§¹®¿¡) Á¦°øµÇ°í ÀÖ½À´Ï´Ù. È£ÃâÃøÀ¸·ÎºÎÅÍ´Â ´ëüÀÇ getInstance ¸Þ¼Òµå °¡¿îµ¥ 1 °³¸¦ »ç¿ëÇØ SecureRandom ¿ÀºêÁ§Æ®¸¦ ÃëµæÇÏ´Â °ÍÀ» ÃßõÇÕ´Ï´Ù.


SecureRandom

public SecureRandom(byte[] seed)

ÀÌ constructor¸¦ »ç¿ëÇϸé(ÀÚ), È£ÃâÃøÀº ±¸ÇöµÈ SecureRandom ¸¦ °¡Áö°í ÀÖ´Â ÀνºÅç ³¡³­ ±× Áß¿¡¼­ ¿Íµµ ¿ì¼±µµÀÇ ³ôÀº ÇÁ·Î¹ÙÀÌ´õ·ÎºÎÅÍ, SecureRandom ¿ÀºêÁ§Æ®¿Í ±× ±¸Çö Äڵ带 ÃëµæÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ constructor Àº Àμö ¾øÀ½ÀÇ constructor ÀÇ ±â¼ú¿¡ ÀÇÇØ ÂüÁ¶µÇ´Â ¾Ë°í¸®ÁòÀÇ Àڱ⠹èÁ¤º¸´Ù, À¯Àú¿¡°Ô Á¦°øµÈ ¹èÁ¤À» ¿ì¼±ÇØ »ç¿ëÇÕ´Ï´Ù. È£ÃâÃøÀÌ ÇϵîÀÇ ¹°¸® µð¹ÙÀ̽º·ÎºÎÅÍÀÇ °íǰÁúÀÎ ³­¼ö ¹ÙÀÌÆ®¿¡ ¾×¼¼½º ÇÒ ¼ö ÀÖ´Â °æ¿ì´Â Àμö ¾øÀ½ÀÇ constructor º¸´Ù ÀÌ constructor¸¦ »ç¿ëÇÏ´Â °ÍÀ» ÃßõÇÕ´Ï´Ù.

ÀÌ constructor Àº ÇÏÀ§ ȣȯÀ» À§Çؼ­(¶§¹®¿¡) Á¦°øµÇ°í ÀÖ½À´Ï´Ù. È£ÃâÃøÀ¸·ÎºÎÅÍ´Â ´ëüÀÇ getInstance ¸Þ¼Òµå °¡¿îµ¥ 1 °³¸¦ »ç¿ëÇØ SecureRandom ¿ÀºêÁ§Æ®¸¦ ÃëµæÇÑ °ð ³ªÁß¿¡,setSeed ¸Þ¼Òµå¸¦ È£ÃâÇØ ¹èÁ¤ ÇÏ´Â °ÍÀ» ÃßõÇÕ´Ï´Ù.

ÆÄ¶ó¹ÌÅÍ:
seed - ¹èÁ¤

SecureRandom

protected SecureRandom(SecureRandomSpi  secureRandomSpi,
                       Provider  provider)
SecureRandom ¿ÀºêÁ§Æ®¸¦ ÀÛ¼ºÇÕ´Ï´Ù.

ÆÄ¶ó¹ÌÅÍ:
secureRandomSpi - SecureRandom ÀÇ ±¸Çö
provider - ÇÁ·Î¹ÙÀÌ´õ
¸Þ¼ÒµåÀÇ »ó¼¼

getInstance

public static SecureRandom  getInstance(String  algorithm)
                                throws NoSuchAlgorithmException 
ÁöÁ¤µÈ À¯»ç ³­¼ö Á¦³×·¹ÀÌÅÍ (PRNG) ¾Ë°í¸®ÁòÀ» ±¸ÇöÇÏ´Â SecureRandom ¿ÀºêÁ§Æ®¸¦ ÀÛ¼ºÇÕ´Ï´Ù. ¿ä±¸µÈ PRNG ÀÇ ±¸ÇöÀ» µðÆúÆ®ÀÇ ÇÁ·Î¹ÙÀÌ´õ ÆÐŰÁö°¡ Á¦°øÇϰí ÀÖ´Â °æ¿ì´Â ±× ±¸ÇöÀ» Æ÷ÇÔÇÑ SecureRandom ÀÇ ÀνºÅϽº¸¦ µ¹·ÁÁÝ´Ï´Ù. µðÆúÆ®ÀÇ ÆÐŰÁö·Î PRNG ¸¦ ÀÌ¿ëÇÒ ¼ö ¾ø´Â °æ¿ì´Â ´Ù¸¥ ÆÐŰÁö¸¦ °Ë»öÇÕ´Ï´Ù.

µ¹·ÁÁÖ¾îÁø SecureRandom ÀÇ ÀνºÅϽº´Â ¹èÁ¤ µÇ°í ÀÖÁö ¾Ê½À´Ï´Ù. SecureRandom ¿ÀºêÁ§Æ®¸¦ ¹èÁ¤ ÇÏ·Á¸é ,setSeed ¸Þ¼Òµå¸¦ È£ÃâÇÕ´Ï´Ù. setSeed °¡ ºÒ·Á °¡Áö ¾Ê¾Ò´ø °æ¿ì´Â ÃÖÃÊ·Î nextBytes ¸Þ¼Òµå¸¦ È£ÃâÇßÀ» ¶§¿¡, SecureRandom ¿ÀºêÁ§Æ®°¡ ±×°Í ÀÚ½ÅÀ» ¹èÁ¤ ÇÏ´Â °ÍÀ» °­Á¦ÇÕ´Ï´Ù.

ÆÄ¶ó¹ÌÅÍ:
algorithm - PRNG ¾Ë°í¸®ÁòÀÇ À̸§. PRNG ¾Ë°í¸®ÁòÀÇ Ç¥ÁØÀûÀÎ À̸§¿¡ ´ëÇØ¼­´Â ¡¸Java ¾Ïȣȭ ¾ÆÅ°ÅØÃÄ API »ç¾ç & ·¹ÆÛ·±½º¡¹ÀÇ ºÎ·Ï A ¸¦ ÂüÁ¶
¹Ýȯ°ª:
½Å±Ô SecureRandom ¿ÀºêÁ§Æ®
¿¹¿Ü:
NoSuchAlgorithmException - PRNG ¾Ë°í¸®ÁòÀÌ È£ÃâÇØ ¿·ÀÇ È¯°æ¿¡¼­ »ç¿ë °¡´ÉÇÏÁö ¾ÊÀº °æ¿ì
µµÀÔµÈ ¹öÁ¯:
1.2

getInstance

public static SecureRandom  getInstance(String  algorithm,
                                       String  provider)
                                throws NoSuchAlgorithmException ,
                                       NoSuchProviderException 
ÁöÁ¤µÈ PRNG ¾Ë°í¸®Áò¿¡ ´ëÇÑ SecureRandom ¿ÀºêÁ§Æ®¸¦ ÀÛ¼ºÇÕ´Ï´Ù. ÁöÁ¤µÈ ÇÁ·Î¹ÙÀÌ´õ·Î PRNG ÀÇ ±¸ÇöÀ» ÀÌ¿ëÇÒ ¼ö ÀÖ´Â °æ¿ì´Â ±× ÇÁ·Î¹ÙÀÌ´õÀÇ ±¸Çö¿¡ ÀÇÇØ Á¦°øµÈ PRNG ¾Ë°í¸®ÁòÀÌ »ç¿ëµË´Ï´Ù.

µ¹·ÁÁÖ¾îÁø SecureRandom ÀÇ ÀνºÅϽº´Â ¹èÁ¤ µÇ°í ÀÖÁö ¾Ê½À´Ï´Ù. SecureRandom ¿ÀºêÁ§Æ®¸¦ ¹èÁ¤ ÇÏ·Á¸é ,setSeed ¸Þ¼Òµå¸¦ È£ÃâÇÕ´Ï´Ù. setSeed °¡ ºÒ·Á °¡Áö ¾Ê¾Ò´ø °æ¿ì´Â ÃÖÃÊ·Î nextBytes ¸Þ¼Òµå¸¦ È£ÃâÇßÀ» ¶§¿¡, SecureRandom ¿ÀºêÁ§Æ®°¡ ±×°Í ÀÚ½ÅÀ» ¹èÁ¤ ÇÏ´Â °ÍÀ» °­Á¦ÇÕ´Ï´Ù.

ÆÄ¶ó¹ÌÅÍ:
algorithm - PRNG ¾Ë°í¸®ÁòÀÇ À̸§. PRNG ¾Ë°í¸®ÁòÀÇ Ç¥ÁØÀûÀÎ À̸§¿¡ ´ëÇØ¼­´Â ¡¸Java ¾Ïȣȭ ¾ÆÅ°ÅØÃÄ API »ç¾ç & ·¹ÆÛ·±½º¡¹ÀÇ ºÎ·Ï A ¸¦ ÂüÁ¶
provider - ÇÁ·Î¹ÙÀÌ´õ¸í
¹Ýȯ°ª:
½Å±Ô SecureRandom ¿ÀºêÁ§Æ®
¿¹¿Ü:
NoSuchAlgorithmException - ¿ä±¸µÈ PRNG ÀÇ ±¸ÇöÀÌ ÇÁ·Î¹ÙÀÌ´õ·ÎºÎÅÍ ÀÌ¿ëÇÒ ¼ö ¾ø´Â °æ¿ì
NoSuchProviderException - ÇÁ·Î¹ÙÀÌ´õ°¡ ¼³Á¤µÇ¾î ÀÖÁö ¾ÊÀº °æ¿ì
IllegalArgumentException - ÇÁ·Î¹ÙÀÌ´õÀÇ À̸§ÀÌ null ³ª ºñ¾úÀ» °æ¿ì
µµÀÔµÈ ¹öÁ¯:
1.2
°ü·Ã Ç׸ñ:
Provider

getInstance

public static SecureRandom  getInstance(String  algorithm,
                                       Provider  provider)
                                throws NoSuchAlgorithmException 
ÁöÁ¤µÈ PRNG ¾Ë°í¸®Áò¿¡ ÀÇÇÑ SecureRandom ¿ÀºêÁ§Æ®¸¦ ÀÛ¼ºÇÕ´Ï´Ù. ´Ù¸¸, ±×·¯ÇÑ PRNG ±¸ÇöÀÌ ÇÁ·Î¹ÙÀÌ´õ·ÎºÎÅÍ »ç¿ë °¡´ÉÇÑ °æ¿ì¿¡ ÇÑÁ¤ÇÕ´Ï´Ù. ÁÖ: provider ¸¦ µî·ÏÇÒ ÇÊ¿ä´Â ¾ø½À´Ï´Ù.

µ¹·ÁÁÖ¾îÁø SecureRandom ÀÇ ÀνºÅϽº´Â ¹èÁ¤ µÇ°í ÀÖÁö ¾Ê½À´Ï´Ù. SecureRandom ¿ÀºêÁ§Æ®¸¦ ¹èÁ¤ ÇÏ·Á¸é ,setSeed ¸Þ¼Òµå¸¦ È£ÃâÇÕ´Ï´Ù. setSeed °¡ ºÒ·Á °¡Áö ¾Ê¾Ò´ø °æ¿ì´Â ÃÖÃÊ·Î nextBytes ¸Þ¼Òµå¸¦ È£ÃâÇßÀ» ¶§¿¡, SecureRandom ¿ÀºêÁ§Æ®°¡ ±×°Í ÀÚ½ÅÀ» ¹èÁ¤ ÇÏ´Â °ÍÀ» °­Á¦ÇÕ´Ï´Ù.

ÆÄ¶ó¹ÌÅÍ:
algorithm - PRNG ¾Ë°í¸®ÁòÀÇ À̸§. PRNG ¾Ë°í¸®ÁòÀÇ Ç¥ÁØÀûÀÎ À̸§¿¡ ´ëÇØ¼­´Â ¡¸Java ¾Ïȣȭ ¾ÆÅ°ÅØÃÄ API »ç¾ç & ·¹ÆÛ·±½º¡¹ÀÇ ºÎ·Ï A ¸¦ ÂüÁ¶
provider - ÇÁ·Î¹ÙÀÌ´õ
¹Ýȯ°ª:
½Å±Ô SecureRandom ¿ÀºêÁ§Æ®
¿¹¿Ü:
NoSuchAlgorithmException - ¿ä±¸µÈ PRNG ÀÇ ±¸ÇöÀÌ ÇÁ·Î¹ÙÀÌ´õ·ÎºÎÅÍ ÀÌ¿ëÇÒ ¼ö ¾ø´Â °æ¿ì
IllegalArgumentException - provider °¡ null ÀÇ °æ¿ì
µµÀÔµÈ ¹öÁ¯:
1.4
°ü·Ã Ç׸ñ:
Provider

getProvider

public final Provider  getProvider()
ÀÌ SecureRandom ¿ÀºêÁ§Æ®ÀÇ ÇÁ·Î¹ÙÀÌ´õ¸¦ µ¹·ÁÁÝ´Ï´Ù.

¹Ýȯ°ª:
ÀÌ SecureRandom ¿ÀºêÁ§Æ®ÀÇ ÇÁ·Î¹ÙÀÌ´õ

setSeed

public void setSeed(byte[] seed)
³­¼ö ¿ÀºêÁ§Æ®¸¦ Àç¹èÁ¤ ÇÕ´Ï´Ù. ÁöÁ¤µÈ ¹èÁ¤Àº ±âÁ¸ÀÇ ¹èÁ¤À» ¿Å°Ü³õ´Â °ÍÀÌ ¾Æ´Ï¶ó º¸ÃæÇÕ´Ï´Ù. ÀÌ ¶§¹®¿¡, ¼ÒȯÀ» ¹Ýº¹Çصµ, ³­¼ö°¡ °¨¼ÒÇÏÁö ¾Ê´Â °ÍÀÌ ÇÁ·ÎÅØ¼ÇµÇ°í ÀÖ½À´Ï´Ù.

ÆÄ¶ó¹ÌÅÍ:
seed - ¹èÁ¤
°ü·Ã Ç׸ñ:
getSeed(int)

setSeed

public void setSeed(long seed)
ÁöÁ¤µÈ long seed ¿¡ Æ÷ÇԵǾî ÀÖ´Â 8 ¹ÙÀÌÆ®¸¦ »ç¿ëÇØ, ÀÌ ³­¼ö ¿ÀºêÁ§Æ®¸¦ Àç¹èÁ¤ ÇÕ´Ï´Ù. ÁöÁ¤µÈ ¹èÁ¤Àº ±âÁ¸ÀÇ ¹èÁ¤À» ¿Å°Ü³õ´Â °ÍÀº ¾Æ´Ï°Ô º¸ÃæÇÏ´Â °ÍÀÔ´Ï´Ù. µû¶ó¼­, È£ÃâÀ» ¹Ýº¹Çصµ, ³­¼ö°¡ °¨¼ÒÇÏÁö ¾Ê´Â °ÍÀÌ ÇÁ·ÎÅØ¼ÇµÇ°í ÀÖ½À´Ï´Ù.

ÀÌ ¸Þ¼Òµå´Â java.util.Random ¿ÍÀÇ È£È¯¼ºÀ» À§Çؼ­(¶§¹®¿¡) Á¤Àǵǰí ÀÖ½À´Ï´Ù.

¿À¹ö¶óÀ̵å(override):
Ŭ·¡½º Random ³»ÀÇ setSeed
ÆÄ¶ó¹ÌÅÍ:
seed - ¹èÁ¤
°ü·Ã Ç׸ñ:
getSeed(int)

nextBytes

public void nextBytes(byte[] bytes)
À¯Àú°¡ ÁöÁ¤ÇÑ ¹ÙÀÌÆ®¼öÀÇ ³­¼ö ¹ÙÀÌÆ®¸¦ »ý¼ºÇÕ´Ï´Ù. ÀÌ ¸Þ¼Òµå´Â ÀÌ Å¬·¡½º°¡ µ¹·ÁÁÖ´Â ¹èÁ¤ ¹ÙÀÌÆ®¸¦ Á¦¿ÜÇÑ ³­¼ö ¿£Æ¼Æ¼ÀÇ ¸ðµç ±âÁØÀ¸·Î¼­ »ç¿ëµË´Ï´Ù.

¿À¹ö¶óÀ̵å(override):
Ŭ·¡½º Random ³»ÀÇ nextBytes
ÆÄ¶ó¹ÌÅÍ:
bytes - ³­¼ö ¹ÙÀÌÆ®¸¦ ÃæÀüÇÏ´Â ¹è¿­

next

protected final int next(int numBits)
À¯Àú°¡ ÁöÁ¤ÇÑ ¼öÀÇ À¯»ç ³­¼ö ºñÆ® (right justify, Á¦·Î ³»ÀåÇϱâ)¸¦ Æ÷ÇÔÇÑ Á¤¼ö¸¦ »ý¼ºÇÕ´Ï´Ù. ÀÌ ¸Þ¼Òµå´Â java.util.Random ¸Þ¼Òµå¸¦ ¿À¹ö¶óÀ̵å(override) ÇØ, ±× Ŭ·¡½º (¿¹¸¦ µé¾î,nextInt,nextLong, ¹× nextFloat)·ÎºÎÅÍ °è½ÂÇÏ´Â ¸Þ¼ÒµåÀÇ ¸ðµÎ¿¡°Ô ³­¼ö ºñÆ®ÀÇ ¹ß»ý¿øÀ» Á¦°øÇÏ´Â °Í¿¡ µµ¿òÀÌ µË´Ï´Ù.

¿À¹ö¶óÀ̵å(override):
Ŭ·¡½º Random ³»ÀÇ next
ÆÄ¶ó¹ÌÅÍ:
numBits - 0 <= numBits <= 32 ÀÇ °æ¿ì, »ý¼ºÇÏ´Â À¯»ç ³­¼ö ºñÆ®ÀÇ ¼ö
¹Ýȯ°ª:
À¯Àú ÁöÁ¤µÈ À¯»ç ³­¼ö ºñÆ® (right justify, Á¦·Î ³»ÀåÇϱâ)¸¦ Æ÷ÇÔÇÑ int

getSeed

public static byte[] getSeed(int numBytes)
ÁöÁ¤µÈ ¹ÙÀÌÆ®¼öÀÇ ¹èÁ¤ ¹ÙÀÌÆ®¸¦ µ¹·ÁÁÝ´Ï´Ù. ¹èÁ¤ ¹ÙÀÌÆ®ÀÇ °è»ê¿¡´Â ÀÌ Å¬·¡½º°¡ ÀÚ½ÅÀ» ¹èÁ¤ Çϴµ¥ »ç¿ëÇÏ´Â ¹èÁ¤ »ý¼º ¾Ë°í¸®ÁòÀÌ »ç¿ëµË´Ï´Ù. ÀÌ È£ÃâÀ» »ç¿ëÇϸé(ÀÚ), ´Ù¸¥ ³­¼ö Á¦³×·¹ÀÌÅ͸¦ ¹èÁ¤ ÇÒ ¼ö ÀÖ½À´Ï´Ù.

ÀÌ ¸Þ¼Òµå´Â ÇÏÀ§ ȣȯÀ» À§Çؼ­(¶§¹®¿¡)¸¸ Á¦°øµÇ°í ÀÖ½À´Ï´Ù. È£ÃâÃøÀ¸·ÎºÎÅÍ´Â ´ëüÀÇ getInstance ¸Þ¼Òµå °¡¿îµ¥ 1 °³¸¦ »ç¿ëÇØ SecureRandom ¿ÀºêÁ§Æ®¸¦ ÃëµæÇÑ °ð ³ªÁß¿¡,setSeed ¸Þ¼Òµå¸¦ È£ÃâÇØ ±× ¿ÀºêÁ§Æ®·ÎºÎÅÍ ¹èÁ¤ ¹ÙÀÌÆ®¸¦ ÃëµæÇÏ´Â °ÍÀ» ÃßõÇÕ´Ï´Ù.

ÆÄ¶ó¹ÌÅÍ:
numBytes - »ý¼ºÇÏ´Â ¹èÁ¤ ¹ÙÀÌÆ®¼ö
¹Ýȯ°ª:
¹èÁ¤ ¹ÙÀÌÆ®
°ü·Ã Ç׸ñ:
setSeed(byte[])

generateSeed

public byte[] generateSeed(int numBytes)
ÁöÁ¤µÈ ¹ÙÀÌÆ®¼öÀÇ ¹èÁ¤ ¹ÙÀÌÆ®¸¦ µ¹·ÁÁÝ´Ï´Ù. ¹èÁ¤ ¹ÙÀÌÆ®ÀÇ °è»ê¿¡´Â ÀÌ Å¬·¡½º°¡ ÀÚ½ÅÀ» ¹èÁ¤ Çϴµ¥ »ç¿ëÇÏ´Â ¹èÁ¤ »ý¼º ¾Ë°í¸®ÁòÀÌ »ç¿ëµË´Ï´Ù. ÀÌ È£ÃâÀ» »ç¿ëÇϸé(ÀÚ), ´Ù¸¥ ³­¼ö Á¦³×·¹ÀÌÅ͸¦ ¹èÁ¤ ÇÒ ¼ö ÀÖ½À´Ï´Ù.

ÆÄ¶ó¹ÌÅÍ:
numBytes - »ý¼ºÇÏ´Â ¹èÁ¤ ¹ÙÀÌÆ®¼ö
¹Ýȯ°ª:
¹èÁ¤ ¹ÙÀÌÆ®

JavaTM 2
Platform
Std.  Ed.  v1. 4.0

¹ö±×ÀÇ º¸°í¿Í ±â´ÉÀÇ ¸®Äù½ºÆ®
ÀÌ¿ÜÀÇ API ·¹ÆÛ·±½º ¹× °³¹ßÀÚ¿ë ¹®¼­¿¡ ´ëÇØ¼­´Â Java 2 SDK SE °³¹ßÀÚ¿ë ¹®¼­¸¦ ÂüÁ¶ÇØ ÁÖ¼¼¿ä. °³¹ßÀÚÀü¿ëÀÇ »ó¼¼ÇÑ ÇØ¼³, °³³äÀÇ °³¿ä, ¿ë¾îÀÇ Á¤ÀÇ, ¹ö±×ÀÇ È¸ÇÇÃ¥, ¹× ÄÚµå ½Ç·Ê°¡ Æ÷ÇԵǾî ÀÖ½À´Ï´Ù.

Java, Java 2 D, ¹× JDBC ´Â ¹Ì±¹ ¹× ±× ¿ÜÀÇ ³ª¶ó¿¡ À־ÀÇ ¹Ì±¹ Sun Microsystems, Inc. ÀÇ »óÇ¥ ȤÀº µî·Ï»óÇ¥ÀÔ´Ï´Ù.
Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.