public abstract class MessageDigest extends MessageDigestSpi
MessageDigestãªããžã§ã¯ãã¯ãåæåãããŠèµ·åãããŸãã ããŒã¿ã¯ããããä»ããŠupdateã¡ãœããã䜿çšããŠåŠçãããŸãã resetã¡ãœãããåŒã³åºãããšã«ãããä»»æã®æç¹ã§ãã€ãžã§ã¹ãããªã»ããã§ããŸãã æŽæ°å¯Ÿè±¡ã®ããŒã¿ããã¹ãп޿°ãããæç¹ã§ãdigestã¡ãœããã®1ã€ãåŒã³åºãããšã«ãããããã·ã¥èšç®ãçµäºããå¿
èŠããããŸãã
digestã¡ãœããã¯ãæå®åæ°ã®æŽæ°ã«å¯ŸããŠ1ååŒã³åºãã ãã§æžã¿ãŸãã digestã¡ãœããã®åŒåºããçµäºããããšãMessageDigestãªããžã§ã¯ãã¯åæåç¶æ
ã«ãªã»ãããããŸãã
Cloneableã€ã³ã¿ãã§ãŒã¹ã¯ãèªç±ã«å®è£ ã§ããŸãã ã¯ã©ã€ã¢ã³ãã»ã¢ããªã±ãŒã·ã§ã³ã¯ãè€è£œã®çæã詊è¡ããŠCloneNotSupportedExceptionããã£ããããã°ãè€è£œã®çæãå¯èœãã©ããã調ã¹ãããšãã§ããŸãã
MessageDigest md = MessageDigest.getInstance("SHA-256");
try {
md.update(toChapter1);
MessageDigest tc1 = md.clone();
byte[] toChapter1Digest = tc1.digest();
md.update(toChapter2);
...etc.
} catch (CloneNotSupportedException cnse) {
throw new DigestException("couldn't make digest of partial content");
}
䜿çšããå®è£ äŸãè€è£œå¯èœã§ãªãå Žåã§ãããã€ãžã§ã¹ãã®æ°ãåãã£ãŠããã£ãŠãããšãã«ã¯ãããã€ãã®ã€ã³ã¹ã¿ã³ã¹ãçæããããšã«ãã£ãŠãäžéçãªãã€ãžã§ã¹ããèšç®ã§ããŸãã
ãã®ã¯ã©ã¹ã¯ãæŽå²çãªäºæ
ããMessageDigestSpiã¯ã©ã¹ããæ¡åŒµãããæœè±¡ã¯ã©ã¹ã«ãªã£ãŠããããšã«æ³šæããŠãã ããã ã¢ããªã±ãŒã·ã§ã³ã®éçºè
ã¯ãMessageDigestã¯ã©ã¹ã§å®çŸ©ãããã¡ãœããã ãã«é
æ
®ããŠãã ãããã¹ãŒããŒã»ã¯ã©ã¹ã®ãã¹ãŠã®ã¡ãœããã¯ãã¡ãã»ãŒãžã»ãã€ãžã§ã¹ãã»ã¢ã«ãŽãªãºã ã®ç¬èªã®å®è£
ãæäŸããå¿
èŠãããæå·ãµãŒãã¹ã»ãããã€ãã§äœ¿çšãããããšãæ³å®ããŠããŸãã
Javaãã©ãããã©ãŒã ã®å®è£
ã¯ããã¹ãŠæ¬¡ã®æšæºã®MessageDigestã¢ã«ãŽãªãºã ããµããŒãããå¿
èŠããããŸãã
MD5SHA-1SHA-256DigestInputStream, DigestOutputStream| 修食å | ã³ã³ã¹ãã©ã¯ã¿ | 説æ |
|---|---|---|
protected |
MessageDigest(String algorithm) |
æå®ãããã¢ã«ãŽãªãºã åã䜿çšããŠã¡ãã»ãŒãžã»ãã€ãžã§ã¹ããäœæããŸãã
|
| 修食åãšå | ã¡ãœãã | 説æ |
|---|---|---|
Object |
clone() |
å®è£
ãè€è£œå¯èœãªå Žåã¯è€è£œãè¿ããŸãã
|
byte[] |
digest() |
ããã£ã³ã°ãªã©ã®æçµåŠçãè¡ã£ãŠããã·ã¥èšç®ãå®äºããŸãã
|
byte[] |
digest(byte[] input) |
æå®ããããã€ãé
åã䜿çšããŠãã€ãžã§ã¹ãã«å¯ŸããŠæçµã®æŽæ°ãå®è¡ããããšããã€ãžã§ã¹ãèšç®ãå®äºããŸãã
|
int |
digest(byte[] buf, int offset, int len) |
ããã£ã³ã°ãªã©ã®æçµåŠçãè¡ã£ãŠããã·ã¥èšç®ãå®äºããŸãã
|
String |
getAlgorithm() |
å®è£
ã®è©³çްã«äŸåããªãã¢ã«ãŽãªãºã ãèå¥ããæååãè¿ããŸãã
|
int |
getDigestLength() |
ãã€ãžã§ã¹ãã®é·ãããã€ãã§è¿ããŸãããã®åŠçããããã€ãã«ãã£ãŠãµããŒããããŠãããããã€å®è£
ãè€è£œå¯èœã§ã¯ãªãå Žåã¯0ãè¿ããŸãã
|
static MessageDigest |
getInstance(String algorithm) |
æå®ããããã€ãžã§ã¹ãã»ã¢ã«ãŽãªãºã ãå®è£
ããMessageDigestãªããžã§ã¯ããè¿ããŸãã
|
static MessageDigest |
getInstance(String algorithm, Provider provider) |
æå®ããããã€ãžã§ã¹ãã»ã¢ã«ãŽãªãºã ãå®è£
ããMessageDigestãªããžã§ã¯ããè¿ããŸãã
|
static MessageDigest |
getInstance(String algorithm, String provider) |
æå®ããããã€ãžã§ã¹ãã»ã¢ã«ãŽãªãºã ãå®è£
ããMessageDigestãªããžã§ã¯ããè¿ããŸãã
|
Provider |
getProvider() |
ãã®ã¡ãã»ãŒãžã»ãã€ãžã§ã¹ãã»ãªããžã§ã¯ãã®ãããã€ããè¿ããŸãã
|
static boolean |
isEqual(byte[] digesta, byte[] digestb) |
2ã€ã®ãã€ãžã§ã¹ããçãããã©ãããæ¯èŒããŸãã
|
void |
reset() |
åå©çšã®ããã«ãã€ãžã§ã¹ãããªã»ããããŸãã
|
String |
toString() |
ãã®ã¡ãã»ãŒãžã»ãã€ãžã§ã¹ãã»ãªããžã§ã¯ãã®æåå衚çŸãè¿ããŸãã
|
void |
update(byte input) |
æå®ããããã€ãã»ããŒã¿ã䜿ã£ãŠãã€ãžã§ã¹ããæŽæ°ããŸãã
|
void |
update(byte[] input) |
æå®ããããã€ãé
åã䜿çšããŠãã€ãžã§ã¹ããæŽæ°ããŸãã
|
void |
update(byte[] input, int offset, int len) |
æå®ããããã€ãã»ããŒã¿ã®é
åã䜿ã£ãŠãæå®ããããªãã»ããããéå§ããŠãã€ãžã§ã¹ããæŽæ°ããŸãã
|
void |
update(ByteBuffer input) |
æå®ãããByteBufferã䜿çšããŠãã€ãžã§ã¹ããæŽæ°ããŸãã
|
engineDigest, engineDigest, engineGetDigestLength, engineReset, engineUpdate, engineUpdate, engineUpdateprotected MessageDigest(String algorithm)
algorithm - ãã€ãžã§ã¹ãã»ã¢ã«ãŽãªãºã ã®æšæºåã ã¢ã«ãŽãªãºã ã®æšæºåã«ã€ããŠã¯ãJavaæå·åã¢ãŒããã¯ãã£æšæºã¢ã«ãŽãªãºã åã®ããã¥ã¡ã³ãã®MessageDigestã®ã»ã¯ã·ã§ã³ãåç
§ã public static MessageDigest getInstance(String algorithm) throws NoSuchAlgorithmException
ãã®ã¡ãœããã¯ãæåªå ã®Providerããé ã«ãç»é²æžã¿ã®ã»ãã¥ãªãã£Providerã®ãªã¹ãããã©ããŒã¹ããŸãã æå®ãããã¢ã«ãŽãªãºã ããµããŒãããæåã®Providerã®MessageDigestSpiå®è£ ãã«ãã»ã«åããæ°ããMessageDigestãªããžã§ã¯ããè¿ãããŸãã
ç»é²æžã¿ãããã€ãã®ãªã¹ãã¯ãSecurity.getProviders()ã¡ãœããçµç±ã§ååŸã§ããŸãã
algorithm - èŠæ±ããã¢ã«ãŽãªãºã ã®ååã ã¢ã«ãŽãªãºã ã®æšæºåã«ã€ããŠã¯ãJavaæå·åã¢ãŒããã¯ãã£æšæºã¢ã«ãŽãªãºã åã®ããã¥ã¡ã³ãã®MessageDigestã®ã»ã¯ã·ã§ã³ãåç
§ã NoSuchAlgorithmException - æå®ããã¢ã«ãŽãªãºã ã®MessageDigestSpiå®è£
ããµããŒããããããã€ããååšããªãå ŽåãProviderpublic static MessageDigest getInstance(String algorithm, String provider) throws NoSuchAlgorithmException, NoSuchProviderException
æå®ããããããã€ãã®MessageDigestSpiå®è£ ãã«ãã»ã«åããæ°ããMessageDigestãªããžã§ã¯ããè¿ãããŸãã æå®ãããããã€ãã¯ãã»ãã¥ãªãã£ã»ãããã€ãã»ãªã¹ãã«ç»é²ããå¿ èŠããããŸãã
ç»é²æžã¿ãããã€ãã®ãªã¹ãã¯ãSecurity.getProviders()ã¡ãœããçµç±ã§ååŸã§ããŸãã
algorithm - èŠæ±ããã¢ã«ãŽãªãºã ã®ååã ã¢ã«ãŽãªãºã ã®æšæºåã«ã€ããŠã¯ãJavaæå·åã¢ãŒããã¯ãã£æšæºã¢ã«ãŽãªãºã åã®ããã¥ã¡ã³ãã®MessageDigestã®ã»ã¯ã·ã§ã³ãåç
§ã provider - ãããã€ãåãNoSuchAlgorithmException - æå®ããããããã€ãã«æå®ãããã¢ã«ãŽãªãºã ã®MessageDigestSpiå®è£
ããªãå ŽåãNoSuchProviderException - æå®ããããããã€ããã»ãã¥ãªãã£ã»ãããã€ãã»ãªã¹ãã«ç»é²ãããŠããªãå ŽåãIllegalArgumentException - ãããã€ãåãnullãŸãã¯ç©ºã®å ŽåãProviderpublic static MessageDigest getInstance(String algorithm, Provider provider) throws NoSuchAlgorithmException
æå®ãããProviderãªããžã§ã¯ãã®MessageDigestSpiå®è£ ãã«ãã»ã«åããæ°ããMessageDigestãªããžã§ã¯ããè¿ãããŸãã æå®ãããProviderãªããžã§ã¯ãã¯ããããã€ãã»ãªã¹ãã«ç»é²ããå¿ èŠã¯ãããŸããã
algorithm - èŠæ±ããã¢ã«ãŽãªãºã ã®ååã ã¢ã«ãŽãªãºã ã®æšæºåã«ã€ããŠã¯ãJavaæå·åã¢ãŒããã¯ãã£æšæºã¢ã«ãŽãªãºã åã®ããã¥ã¡ã³ãã®MessageDigestã®ã»ã¯ã·ã§ã³ãåç
§ã provider - ãããã€ããNoSuchAlgorithmException - æå®ãããProviderãªããžã§ã¯ãã«æå®ãããã¢ã«ãŽãªãºã ã®MessageDigestSpiã®å®è£
ããªãå ŽåãIllegalArgumentException - æå®ããããããã€ããnullã®å ŽåãProviderpublic final Provider getProvider()
public void update(byte input)
input - ãã€ãžã§ã¹ããæŽæ°ãããã€ããpublic void update(byte[] input,
int offset,
int len)
input - ãã€ãã®é
åãoffset - ãã€ãã®é
åã§ã®éå§ãªãã»ãããlen - 䜿çšãããã€ãæ°(offsetããéå§)ãpublic void update(byte[] input)
input - ãã€ãã®é
åãpublic final void update(ByteBuffer input)
input.position()äœçœ®ããå§ãŸãinput.remaining()ãã€ãã䜿çšãããŸãã çµäºæã«ããããã¡ã®äœçœ®ã¯ãªãããã«çãããªããŸããããªãããã¯å€æŽãããŸããã input - ByteBufferpublic byte[] digest()
public int digest(byte[] buf,
int offset,
int len)
throws DigestException
buf - èšç®æžã¿ã®ãã€ãžã§ã¹ãã®åºåå
ãããã¡offset - åºåãããã¡ã«ãã€ãžã§ã¹ãã®æ ŒçŽãéå§ããäœçœ®ã瀺ããªãã»ããlen - ãã€ãžã§ã¹ããå²ãåœãŠããããã¡ã®ãã€ãæ°bufã«æ ŒçŽããããã€ãæ°DigestException - ãšã©ãŒãçºçããå Žåãpublic byte[] digest(byte[] input)
update(input)ã¡ãœãããåŒã³åºããŠinputé
åãupdateã¡ãœããã«æž¡ããããšãdigest()ã¡ãœãããåŒã³åºããŸãã input - ãã€ãžã§ã¹ãã®å®äºåã«æŽæ°ãã察象ã®å
¥åãpublic String toString()
public static boolean isEqual(byte[] digesta,
byte[] digestb)
digesta - æ¯èŒããäžæ¹ã®ãã€ãžã§ã¹ããdigestb - æ¯èŒãã仿¹ã®ãã€ãžã§ã¹ããpublic void reset()
public final String getAlgorithm()
public final int getDigestLength()
public Object clone() throws CloneNotSupportedException
cloneãã¯ã©ã¹MessageDigestSpiCloneNotSupportedException - CloneableããµããŒãããŠããªãå®è£
ã§åŒã³åºãããå ŽåãCloneable ãã°ãŸãã¯æ©èœãéä¿¡
詳现ãªAPIãªãã¡ã¬ã³ã¹ããã³éçºè
ããã¥ã¡ã³ãã«ã€ããŠã¯ãJava SEã®ããã¥ã¡ã³ããåç
§ããŠãã ããã ãã®ããã¥ã¡ã³ãã«ã¯ãæŠå¿µçãªæŠèŠãçšèªã®å®çŸ©ãåé¿æ¹æ³ãæå¹ãªã³ãŒãäŸãªã©ã®ãéçºè
ã察象ã«ãããã詳现ãªèª¬æãå«ãŸããŠããŸãã
Copyright © 1993, 2025, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Documentation Redistribution Policyãåç
§ããŠãã ããã