JavaTM 2 Platform
Standard Ed. 5.0

java.security
Ŭ·¡½º SecureRandom

java.lang.Object 
  »óÀ§¸¦ È®Àå java.util.Random 
      »óÀ§¸¦ È®Àå java.security.SecureRandom
¸ðµç ±¸ÇöµÈ ÀÎÅÍÆäÀ̽º:
Serializable

public class SecureRandom
extends Random

ÀÌ Å¬·¡½º´Â ¾ÏÈ£¿ëÀ¸·Î °­È­µÈ ³­¼ö Á¦³×·¹ÀÌÅÍ (RNG)¸¦ Á¦°øÇÕ´Ï´Ù. ¸¹Àº ±¸ÇöÀº »ç ³­¼ö Á¦³×·¹ÀÌÅÍ (PRNG)ÀÇ Çü½ÄÀÔ´Ï´Ù. ÀÌ°ÍÀº ƯÁ¤ÀÇ °áÁ¤¼º ¾Ë°í¸®ÁòÀ» »ç¿ëÇØ ÁøÁ¤ÇÑ ³­¼ö ¹èÁ¤À¸·ÎºÎÅÍ »ç ³­¼ö ¼ø¼­¸¦ »ý¼ºÇÏ´Â °ÍÀ»ÀǹÌÇÕ´Ï´Ù. ±¸Çö¾È¿¡´Â ÁøÁ¤ÇÑ ³­¼ö¸¦ »ý¼ºÇÏ´Â °Íµµ ÀÖÀ¸¸é, ¾çÂÊ ¸ðµÎÀÇ ±â¼úÀÇ Æí¼ºÀ» »ç¿ëÇÏ´Â °Íµµ ÀÖ½À´Ï´Ù.

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

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

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

È£ÃâÃøÀÌ, ´ÙÀ½¿¡ ³ªÅ¸³»µµ·Ï 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 ()
          ÀÌ »ý¼ºÀÚ¸¦ »ç¿ëÇϸé, È£ÃâÃøÀº ±¸ÇöµÈ SecureRandom¸¦ °¡Áö°í ÀÖ´Â ÀνºÅç ³¡³­ ±× Áß¿¡¼­ °¡Àå ¿ì¼±µµÀÇ ³ôÀº ÇÁ·Î¹ÙÀÌ´õ·ÎºÎÅÍ, SecureRandom °´Ã¼¿Í ±× ±¸Çö Äڵ带 ÃëµæÇÒ ¼ö ÀÖ½À´Ï´Ù.
  SecureRandom (byte[] seed)
          ÀÌ »ý¼ºÀÚ¸¦ »ç¿ëÇϸé, È£ÃâÃøÀº ±¸ÇöµÈ SecureRandom¸¦ °¡Áö°í ÀÖ´Â ÀνºÅç ³¡³­ ±× Áß¿¡¼­¿Í µµ ¿ì¼±µµÀÇ ³ôÀº ÇÁ·Î¹ÙÀÌ´õ·ÎºÎÅÍ, SecureRandom °´Ã¼¿Í ±× ±¸Çö Äڵ带 ÃëµæÇÒ ¼ö ÀÖ½À´Ï´Ù.
protected SecureRandom (SecureRandomSpi  secureRandomSpi, Provider  provider)
          SecureRandom °´Ã¼¸¦ ÀÛ¼ºÇÕ´Ï´Ù.
 
¸Þ¼­µå °³¿ä
 byte[] generateSeed (int numBytes)
          ÁöÁ¤µÈ ¹ÙÀÌÆ®¼öÀÇ ¹èÁ¤ ¹ÙÀÌÆ®¸¦ ¸®ÅÏÇÕ´Ï´Ù.
 String getAlgorithm ()
          ÀÌ SecureRandom °´Ã¼°¡ ±¸ÇöÇÏ°í ÀÖ´Â ¾Ë°í¸®ÁòÀÇ À̸§À» ¸®ÅÏÇÕ´Ï´Ù.
static SecureRandom getInstance (String  algorithm)
          ÁöÁ¤µÈ ³­¼ö Á¦³×·¹ÀÌÅÍ (RNG) ¾Ë°í¸®ÁòÀ» ±¸ÇöÇÑ SecureRandom °´Ã¼¸¦ ÀÛ¼ºÇÕ´Ï´Ù.
static SecureRandom getInstance (String  algorithm, Provider  provider)
          ÁöÁ¤µÈ RNG ¾Ë°í¸®Áò¿¡ ÇÑ SecureRandom °´Ã¼¸¦ ÀÛ¼ºÇÕ´Ï´Ù.
static SecureRandom getInstance (String  algorithm, String  provider)
          ÁöÁ¤µÈ RNG ¾Ë°í¸®Áò¿¡ ´ëÇÑ 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()

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

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

ÀÌ »ý¼ºÀÚ´Â ÇÏÀ§ ȣȯÀ» À§Çؼ­ Á¦°øµÇ°í ÀÖ½À´Ï´Ù. È£ÃâÃøÀ¸·ÎºÎÅÍ´Â ´ëüÀÇ getInstance ¸Þ¼­µå °¡¿îµ¥ 1°³¸¦ »ç¿ëÇØ SecureRandom °´Ã¼¸¦ ¾ò´Â °ÍÀ» ÃßõÇÕ´Ï´Ù.


SecureRandom

public SecureRandom(byte[] seed)

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

ÀÌ »ý¼ºÀÚ´Â ÇÏÀ§ ȣȯÀ» À§Çؼ­ Á¦°øµÇ°í ÀÖ½À´Ï´Ù. È£ÃâÃøÀ¸·ÎºÎÅÍ´Â ´ëüÀÇ 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 
ÁöÁ¤µÈ ³­¼ö Á¦³×·¹ÀÌÅÍ (RNG) ¾Ë°í¸®ÁòÀ» ±¸ÇöÇÑ SecureRandom °´Ã¼¸¦ ÀÛ¼ºÇÕ´Ï´Ù. ¿ä±¸µÈ ¾Ë°í¸®ÁòÀÇ ±¸ÇöÀ» µðÆúÆ®ÀÇ ÇÁ·Î¹ÙÀÌ´õ ÆÐÅ°Áö°¡ Á¦°øÇÏ°í ÀÖ´Â °æ¿ì´Â ±× ±¸ÇöÀ» Æ÷ÇÔÇÑ SecureRandom ÀνºÅϽº¸¦ ¸®ÅÏÇÕ´Ï´Ù. µðÆúÆ®ÀÇ ÆÐÅ°Áö·Î ¾Ë°í¸®ÁòÀ» ÀÌ¿ëÇÒ ¼ö ¾ø´Â °æ¿ì´Â ´Ù¸¥ ÆÐÅ°Áö¸¦ °Ë»öÇÕ´Ï´Ù.

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

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

getInstance

public static SecureRandom  getInstance(String  algorithm,
                                       String  provider)
                                throws NoSuchAlgorithmException,

                                       NoSuchProviderException 
ÁöÁ¤µÈ RNG ¾Ë°í¸®Áò¿¡ ´ëÇÑ SecureRandom °´Ã¼¸¦ ÀÛ¼ºÇÕ´Ï´Ù. ÁöÁ¤µÈ ÇÁ·Î¹ÙÀÌ´õ·Î RNG ±¸ÇöÀ» ÀÌ¿ëÇÒ ¼ö ÀÖ´Â °æ¿ì´Â ±× ÇÁ·Î¹ÙÀÌ´õÀÇ ±¸Çö¿¡ ÀÇÇØ Á¦°øµÈ RNG ¾Ë°í¸®ÁòÀÌ »ç¿ëµË´Ï´Ù.

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

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

getInstance

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

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

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

getProvider

public final Provider  getProvider()
ÀÌ SecureRandom °´Ã¼ÀÇ ÇÁ·Î¹ÙÀÌ´õ¸¦ ¸®ÅÏÇÕ´Ï´Ù.

¹Ýȯ°ª:
ÀÌ SecureRandom °´Ã¼ÀÇ ÇÁ·Î¹ÙÀÌ´õ

getAlgorithm

public String  getAlgorithm()
ÀÌ SecureRandom °´Ã¼°¡ ±¸ÇöÇÏ°í ÀÖ´Â ¾Ë°í¸®ÁòÀÇ À̸§À» ¸®ÅÏÇÕ´Ï´Ù.

¹Ýȯ°ª:
¾Ë°í¸®ÁòÀÇ À̸§. ¾Ë°í¸®Áò¸íÀ» °áÁ¤ÇÒ ¼ö ¾ø´Â °æ¿ì´Â unknown
µµÀÔµÈ ¹öÀü :
1.5

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
Standard Ed. 5.0

Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy µµ ÂüÁ¶ÇϽʽÿÀ.