亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? blockmessagedigest.java

?? jpeg2000編解碼
?? JAVA
字號:
// $Id: BlockMessageDigest.java,v 1.1.1.1 2002/08/27 12:32:11 grosbois Exp $//// $Log: BlockMessageDigest.java,v $// Revision 1.1.1.1  2002/08/27 12:32:11  grosbois// Add cryptix 3.2//// Revision 1.4  1998/01/19 23:40:54  hopwood// + Committed changes below.//// Revision 1.3.1  1998/01/19  hopwood// + Fix from Aldo Eisma: incorrect input data was used to calculate the digest.//   'engineTransform(data)' should be 'engineTransform(buffer)'.//// Revision 1.3  1997/12/19 05:44:13  hopwood// + Committed changes below.//// Revision 1.2.1  1997/12/18  hopwood// + Made count variable long.// + Made sure that count does not overflow (although it's unlikely that anyone//   could feasibly hash 2^61 bytes).// + engineGetDataLength should be abstract.// + Cache data length for minor efficiency gain.// + Cosmetics.//// Revision 1.2  1997/12/16 21:58:25  iang// + MD5, SHA{01} debugged, got working, internal self_tests ok.// + BlockMessageDigest.bitcount() made long, was int, check calling//   where it is assumed by digest algorithms to be a long.//// Revision 1.1.1.1  1997/11/03 22:36:56  hopwood// + Imported to CVS (tagged as 'start').//// Revision 0.1.0.2  1997/08/27  David Hopwood// + engineGetDigest must not be abstract, because that would cause//   an incompatible class change problem when Java 1.2 is released.//// Revision 0.1.0.1  1997/08/14  David Hopwood// + Moved to cryptix.provider.md package.// + Changed to extend java.security.MessageDigest directly.// + Removed deprecated methods.//// Revision 0.1.0.0  1997/06/29  David Hopwood// + Initial version, based on cryptix.security.MessageDigest.//// $Endlog$/* * Copyright (c) 1997 Systemics Ltd * on behalf of the Cryptix Development Team.  All rights reserved. */package cryptix.provider.md;import cryptix.CryptixException;import java.security.MessageDigest;/** * This is a superclass for message digests that operate internally on * blocks of data. It is not intended directly for use by application * programmers. * <p> * <b>Copyright</b> &copy; 1995-1997 * <a href="http://www.systemics.com/">Systemics Ltd</a> on behalf of the * <a href="http://www.systemics.com/docs/cryptix/">Cryptix Development Team</a>. * <br>All rights reserved. * <p> * <b>$Revision: 1.1.1.1 $</b> * @author  David Hopwood * @since   Cryptix 2.2.2 */abstract class BlockMessageDigestextends MessageDigest{    /**     * The buffer used to store the last incomplete block.     */    private byte[] buffer;    /**     * The number of bytes currently stored in <code>buffer</code>.     */    private int buffered;    /**     * The number of bytes that have been input to the digest.     */    private long count;    private static final long MAX_COUNT = (1L << 61)-1L;    /**     * The length of a data block for this algorithm.     */    private int data_length;    /**     * Constructs a message digest with the specified algorithm name.     *     * @param algorithm the standard name of the digest algorithm.     */    protected BlockMessageDigest(String algorithm)    {        super(algorithm);        data_length = engineGetDataLength();        buffer = new byte[data_length];    }    /**     * @return number of bits hashed so far?     */    protected long bitcount() {        return count * 8;    }    /**     * <b>SPI</b>: Resets the digest. Subclasses that override <code>engineReset</code>     * should always call this implementation using <code>super.engineReset()</code>.     */    protected void engineReset()    {        buffered = 0;        count = 0;    }    /**     * <b>SPI</b>: Updates the message digest with a byte of new data.     *     * @param b     the byte to be added.     */    protected void engineUpdate(byte b)    {        byte[] data = { b };        engineUpdate(data, 0, 1);    }    /**     * <b>SPI</b>: Updates the message digest with new data.     *     * @param data      the data to be added.     * @param offset    the start of the data in the array.     * @param length    the number of bytes of data to add.     */    protected void engineUpdate(byte[] data, int offset, int length)    {        count += length;        if (count > MAX_COUNT)            throw new CryptixException(getAlgorithm() + ": Maximum input length exceeded");        int datalen = data_length;        int remainder;        while (length >= (remainder = datalen - buffered)) {            System.arraycopy(data, offset, buffer, buffered, remainder);            engineTransform(buffer);            length -= remainder;            offset += remainder;            buffered = 0;        }        if (length > 0) {            System.arraycopy(data, offset, buffer, buffered, length);            buffered += length;        }    }    /**     * <b>SPI</b>: Calculates the final digest. BlockMessageDigest     * subclasses should not usually override this method.     *     * @return the digest as a byte array.     */    protected byte[] engineDigest()    {        return engineDigest(buffer, buffered);    }    //    // Override int engineDigest(byte[] buf, int offset, int len)    // from Java 1.2 preview docs? For the time being no - it should work    // anyway.    //    /**     * <b>SPI</b> (for BlockMessageDigests only): Calculates the     * final digest. <code>data[0..length-1]</code> contains the last     * incomplete input block. <i>length</i> will be less than     * <code>engineDataLength()</code>.     *     * @param data      the last incomplete block.     * @param length    the length in bytes of the last block.     * @return the digest as a byte array.     */    protected abstract byte[] engineDigest(byte[] data, int length);    /**     * <b>SPI</b> (for BlockMessageDigests only): Performs a     * transformation on the given data, which is always one block long.     */    protected abstract void engineTransform(byte[] data);    /**     * <b>SPI</b>: Returns the length of the block that this hash     * function operates on.     */    protected abstract int engineGetDataLength();}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲欧美经典视频| 欧美精选午夜久久久乱码6080| 亚洲第一福利视频在线| 亚洲日本丝袜连裤袜办公室| 日韩一区欧美一区| 亚洲美女一区二区三区| 久久精品99国产精品日本| 国产一区二区三区四区五区美女| 久久国产精品99精品国产 | 国产ts人妖一区二区| 国产一区欧美二区| 欧美日本乱大交xxxxx| 欧美一区二区三区视频免费播放 | 精品少妇一区二区三区在线播放| 日韩精品一区二区三区蜜臀| 久久久久久99久久久精品网站| 久久精品日产第一区二区三区高清版| 久久久久久久综合狠狠综合| 五月激情综合色| 国产综合色精品一区二区三区| 成人av网站在线观看免费| 欧美吻胸吃奶大尺度电影 | 欧美精品一区二区三区四区| 中文字幕欧美日韩一区| 一区二区三区中文字幕精品精品 | 日韩精品欧美成人高清一区二区| 国内精品视频666| 欧美一区二区福利在线| 丝袜美腿亚洲色图| 欧美少妇性性性| 亚洲中国最大av网站| 国产一区二区在线视频| 精品国产免费视频| 国产在线精品国自产拍免费| 久久久99久久| 国产凹凸在线观看一区二区| 欧美韩日一区二区三区四区| 国产一区二区精品在线观看| 亚洲精品在线观| 国产精品18久久久久久久久久久久| 欧美在线短视频| 欧美国产精品专区| 99re热视频精品| 久久精品水蜜桃av综合天堂| 国产精品99久久久久| 国产精品另类一区| 视频一区视频二区中文字幕| 在线电影一区二区三区| 日韩av网站在线观看| 欧美制服丝袜第一页| 无码av免费一区二区三区试看 | 91免费版在线看| 欧美精品一区二区三区久久久| 久久国产夜色精品鲁鲁99| 久久久久亚洲蜜桃| 91亚洲精华国产精华精华液| 亚洲成在人线免费| 欧美成人猛片aaaaaaa| 国产福利不卡视频| 久久婷婷综合激情| 美女国产一区二区| 欧美一二三区在线| 日韩av一级电影| 精品少妇一区二区三区| 丁香婷婷综合色啪| 亚洲国产精品久久人人爱蜜臀| 91免费看视频| 蜜桃视频免费观看一区| 国产精品久久三区| 91麻豆精品国产自产在线| 午夜欧美在线一二页| 欧美精品一区二区三区在线| 91看片淫黄大片一级在线观看| 蜜臀精品久久久久久蜜臀| 国产女同性恋一区二区| 成人国产电影网| 亚洲18女电影在线观看| 日本一区免费视频| 精品婷婷伊人一区三区三| 天堂成人国产精品一区| 日本一区二区视频在线| 91麻豆精品91久久久久同性| 不卡av在线免费观看| 免费观看久久久4p| 久久久青草青青国产亚洲免观| 欧美亚洲高清一区二区三区不卡| 精品一区免费av| 国产精品久久久久久久久久久免费看 | 日韩欧美亚洲另类制服综合在线| 99精品欧美一区二区三区小说| 蜜臀va亚洲va欧美va天堂| 亚洲精品久久久久久国产精华液| 在线精品视频免费观看| 国产麻豆9l精品三级站| 视频一区中文字幕国产| 成人免费在线视频| 国产拍欧美日韩视频二区| 欧美一级黄色录像| 欧美群妇大交群中文字幕| a在线欧美一区| 亚洲韩国精品一区| 亚洲蜜臀av乱码久久精品蜜桃| 精品国产露脸精彩对白| 337p亚洲精品色噜噜| 欧美视频日韩视频在线观看| 99re在线精品| 99久久精品一区| caoporm超碰国产精品| 成人黄色在线视频| 国产999精品久久久久久绿帽| 国产做a爰片久久毛片| 麻豆精品视频在线| 九色|91porny| 狠狠色丁香婷婷综合久久片| 久久av资源站| 国内精品写真在线观看| 国模冰冰炮一区二区| 精品无人区卡一卡二卡三乱码免费卡| 秋霞午夜av一区二区三区| 麻豆精品国产91久久久久久| 蜜桃一区二区三区在线观看| 久久精品久久久精品美女| 久久99精品国产麻豆不卡| 久久精品久久综合| 国产九色精品成人porny| 国产精品一二三| av电影在线不卡| 欧美三级午夜理伦三级中视频| 欧美日韩专区在线| 日韩视频永久免费| 久久久久国产精品厨房| 中文字幕一区av| 亚洲自拍偷拍九九九| 日本麻豆一区二区三区视频| 国内精品视频666| www.亚洲国产| 欧美日韩的一区二区| 精品国产一区二区三区av性色 | 国产精品久久久久久福利一牛影视| 国产精品免费视频网站| 亚洲一区欧美一区| 美女视频黄 久久| 国产成人av影院| 在线观看日韩电影| 欧美tk—视频vk| 日本一区二区三区久久久久久久久不 | 欧美精品日韩一区| 久久久综合激的五月天| 亚洲精品高清在线观看| 六月丁香综合在线视频| proumb性欧美在线观看| 欧美军同video69gay| 国产亚洲欧洲997久久综合| 亚洲美女在线国产| 精品一区二区三区久久久| 91蜜桃在线免费视频| 日韩午夜精品视频| 日韩美女久久久| 韩国欧美国产一区| 欧美午夜精品久久久久久超碰| 欧美精品一区二区三区四区| 一卡二卡欧美日韩| 国产精品自拍毛片| 5566中文字幕一区二区电影| 久久精品一区二区三区四区| 午夜精品一区二区三区三上悠亚| 成熟亚洲日本毛茸茸凸凹| eeuss鲁一区二区三区| 日韩一区二区三区在线视频| 成人欧美一区二区三区黑人麻豆| 久久精品国产澳门| 欧美亚洲丝袜传媒另类| 日韩美女啊v在线免费观看| 国产一区二区在线观看视频| 7777精品久久久大香线蕉| 亚洲天天做日日做天天谢日日欢 | 欧美一区二区国产| 亚洲激情av在线| 99久久99久久综合| 久久久久国产精品厨房| 九一九一国产精品| 在线成人av网站| 亚洲一区二区三区四区的| 91玉足脚交白嫩脚丫在线播放| 久久精品欧美一区二区三区不卡| 蜜臀99久久精品久久久久久软件| 欧美日韩国产一级二级| 亚洲人成人一区二区在线观看| 豆国产96在线|亚洲| 久久精品人人做人人爽人人| 久久精品久久久精品美女| 538prom精品视频线放| 亚洲高清免费在线| 欧美亚洲综合网| 曰韩精品一区二区| 91福利精品视频| 日韩精品中文字幕一区二区三区 | 99精品欧美一区| 一色屋精品亚洲香蕉网站| 国产宾馆实践打屁股91|