Пт, 27.12.2024, 19:07
Приветствую Вас Гость | RSS
Главная | Хеш-фунция под zVM - Форум | Регистрация | Вход
Форма входа
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Хеш-фунция под zVM
artДата: Пн, 27.06.2011, 13:05 | Сообщение # 1
Лейтенант
Группа: Доверенные
Сообщений: 60
Репутация: 3
Статус: Offline
Привет.

Сталкивался ли кто-нибудь с необходимостью получению хеша по какому-нибудь файлу? По аналогии с md5sum в linux.

Есть задача убраться на минидисках, посмотреть сколько там файлов-дубликатов. Файлов всего 150к. Обычно, на других ОС, такую задачу решают через сравнения хешей.

Кто-нибудь знает как снять хеш в zVM/CMS?

Добавлено (27.06.2011, 13:05)
---------------------------------------------
Отвечу сам себе, может кому пригодится. А то в рунете такой информации точно нет, так что пусть хоть здесь осядет.

В pipe CMSа есть специальный кейворд CRC, который позволяет снять CRC-хеш с входного потока. CRC конечно не фонтан, но для большей части целей сгодится. Результирующая чексумма представляет собой 16-битный ключ.

Пример использования 1:
pipe < INPUT FILE A | crc crc16i | var hash'

В переменную hash будет сохранено значение хеша.

Пример использования 2:
pipe < INPUT FILE A | crc append crc16i | > INPUT FILE A

Добавит в конец входного файла значение хеша.

Ну и так далее...

 
akostДата: Вт, 28.06.2011, 23:06 | Сообщение # 2
Admin
Группа: Администраторы
Сообщений: 619
Репутация: 5
Статус: Offline
Ну что, тоже решение. У меня была программулька где-то, что снимает MD5-сумму, но непроверенная и не слишком стабильная.
 
akostДата: Пн, 04.07.2011, 09:39 | Сообщение # 3
Admin
Группа: Администраторы
Сообщений: 619
Репутация: 5
Статус: Offline
Quote (art)
CRC конечно не фонтан, но для большей части целей сгодится.

А почему CRC не фонтан? Чем он так уж плох? Я совсем не изучал этот вопрос.
 
artДата: Пт, 05.08.2011, 23:12 | Сообщение # 4
Лейтенант
Группа: Доверенные
Сообщений: 60
Репутация: 3
Статус: Offline
Quote (akost)
А почему CRC не фонтан? Чем он так уж плох? Я совсем не изучал этот вопрос.

Вот тут есть годная статья почему CRC16/32 (и так далее) уже не фонтан для продвинутых IT-шников. Если в кратце, то подделываются относительно легко. Конечно в контексте поставленной задачи его более чем достаточно, но в плане криптоустойчивости лучше использовать другие решения.
 
mavrodyДата: Пн, 30.04.2012, 00:54 | Сообщение # 5
Группа: Удаленные





А все-таки есть ли для CMS штатная утилита для снятия MD5-сумму.
 
smokerДата: Вт, 01.05.2012, 17:26 | Сообщение # 6
Лейтенант
Группа: Проверенные
Сообщений: 46
Репутация: 6
Статус: Offline
Quote (mavrody)
А все-таки есть ли для CMS штатная утилита для снятия MD5-сумму.


А какие проблемы написать сию утилиту самому?
 
mavrodyДата: Ср, 02.05.2012, 21:54 | Сообщение # 7
Группа: Удаленные





Сказать проще чем сделать. Нужна 100% совместимость со стандартом, а не сурогат.

Сообщение отредактировал mavrody - Ср, 02.05.2012, 21:55
 
smokerДата: Чт, 03.05.2012, 17:45 | Сообщение # 8
Лейтенант
Группа: Проверенные
Сообщений: 46
Репутация: 6
Статус: Offline
Quote (mavrody)
Сказать проще чем сделать. Нужна 100% совместимость со стандартом, а не сурогат.


То есть, только IBM может сделать совместимость со стандартом? Ваша компания не может?
 
mavrodyДата: Сб, 05.05.2012, 18:54 | Сообщение # 9
Группа: Удаленные





Претензии на остроумие не принимаются. А изобретать велосипед ни кто не собирается.
 
akostДата: Сб, 05.05.2012, 19:52 | Сообщение # 10
Admin
Группа: Администраторы
Сообщений: 619
Репутация: 5
Статус: Offline
Да какое там остроумие... Ну допустим, что кто-то в CMS найдет программу MD5 MODULE S1. И что? Кто и каким документом гарантирует соответствие стандарту? IBM такие бумаги раздавать не будет, оно ему не уперлось...
smoker прав. Если хотите соответствие таких вещей стандарту, реализовывать надо самим. Хотите готовое - без нормальных сертификатов это будет просто работа на доверии. А если просто надо быстро решать проблему - CRC вам в руки...
Нет готовой утилиты, а которая будет, будет недоверенной, а следовательно - бесполезной.
 
smokerДата: Чт, 08.06.2017, 15:26 | Сообщение # 11
Лейтенант
Группа: Проверенные
Сообщений: 46
Репутация: 6
Статус: Offline
CHECKSUM

CKSM R1,R2

'B241'

http://publibz.boulder.ibm.com/cgi-bin....3


Сообщение отредактировал smoker - Чт, 08.06.2017, 15:29
 
GregoryДата: Пт, 16.06.2017, 09:32 | Сообщение # 12
Генерал-майор
Группа: Доверенные
Сообщений: 482
Репутация: 22
Статус: Offline
Добрый день всем.

Freeware реализации не подойдут? Я портировал MD5 (а также SHA1, SHA256, SHA512, начал портировать TTH но не закончил) в z/OS и не вижу проблем их портации в CMS. Есть реализация MD5 на REXX (GitHub), конечно же, скорость очень существенно уступает компилированному коду, но, может быть, подойдет?

P.S.  разница между CRC и MD5 примерно такая же, как между дверным крючком и замком smile  И подделывается CRC не "относительно легко" а тривиально, так что для проверки целостности данных я бы не стал использовать CRC.


Сообщение отредактировал Gregory - Пт, 16.06.2017, 09:45
 
smokerДата: Сб, 17.06.2017, 06:43 | Сообщение # 13
Лейтенант
Группа: Проверенные
Сообщений: 46
Репутация: 6
Статус: Offline
Так есть же реализация cbttape файл 900
Под mvs

Добавлено (17.06.2017, 06:43)
---------------------------------------------
http://www.cbttape.org/ftp/cbt/CBT900.zip

 
VONДата: Вт, 27.06.2017, 18:49 | Сообщение # 14
Рядовой
Группа: Проверенные
Сообщений: 2
Репутация: 0
Статус: Offline
SHA-512 на System z Processor, работу с файлами допилите сами:

   EJECT ,
SHA512   CSECT
SHA512   AMODE 31
SHA512   RMODE ANY
         SAVE  (14,12),,SHA512         SAVE REGISTERS
*
         LR    R12,R15
         USING SHA512,R12              ESTABLISH BASE REG FOR PGM
         B     START
         DC    C'SHA512 - CALCULATES 64-BYTE SHA512 HASH FOR '
         DC    C'SUPPLIED DATA STRING, '
         DC    C'ASSEMBLED AT &SYSDATC &SYSTIME '
         DC    C'&SYSASM &SYSVER '
START    DS    0H
         L     R11,8(,R1)              @ OF HASH + CV_MBL (OUTPUT)
         USING OCV,R11
*
         L     R5,0(,R1)               @ OF DATA LENGTH (INPUT)
         L     R5,0(,R5)               DATA LENGTH (INPUT)
         MVC   OCV(@CV_LEN),ICV        INIT CHAINING VECTOR
         ST    R5,OCV_MBLL             SAVE MESSAGE BIT LENGTH
*
         XR    R4,R4                   ZERO R4 FOR DIVISION
         LHI   R6,128                  KIMD FOR SHA-512 REQUIRES DATA
*                                      TO BE MULTIPLIED BY 128
         DLR   R4,R6                   REMAINDER IS IN R4
*                                      QOUTIENT  IS IN R5
         SLL   R5,7(0)                 DATA LENGTH FOR KIMD IN R5
         LR    R7,R4                   DATA LENGTH FOR KLMD IN R7
         L     R4,4(,R1)               @ OF DATA
         IILL  R0,@SHA512              SET FUNCTION CODE
         LR    R1,R11                  @ OF PARM BLOCK FOR KIMD/KLMD
KIMDLOOP KIMD  R4,R4                   COMPUTE SHA512 INTERMEDIATE
         BNZ   KIMDLOOP                REPEAT IF NOT DONE
*
         LR    R5,R7                   SET DATA LENGTH FOR KLMD
KLMDLOOP KLMD  R4,R4                   COMPUTE SHA512 LAST
         BNZ   KLMDLOOP                REPEAT IF NOT DONE
GOBACK   XR    R15,R15                 CLEAR R15
         RETURN (14,12),RC=(15)        RESTORE REGISTERS AND RETURN
*
*        TABLES AND CONSTANTS POOL
*
ICV      DS    0D                      INIT CHAINING VECTOR
ICV_H0   DC    XL8'6A09E667F3BCC908'
ICV_H1   DC    XL8'BB67AE8584CAA73B'
ICV_H2   DC    XL8'3C6EF372FE94F82B'
ICV_H3   DC    XL8'A54FF53A5F1D36F1'
ICV_H4   DC    XL8'510E527FADE682D1'
ICV_H5   DC    XL8'9B05688C2B3E6C1F'
ICV_H6   DC    XL8'1F83D9ABFB41BD6B'
ICV_H7   DC    XL8'5BE0CD19137E2179'
ICV_MBL  DC    XL16'00000000000000000000000000000000'
*
         LTORG
*
         DROP  R11
         DROP  R12
*
         REQUATE
*
*  PARAMETER BLOCK MAP
*
OCV      DSECT                         OUTPUT CHAINING VECTOR
*
OCV_H0   DS    XL8
OCV_H1   DS    XL8
OCV_H2   DS    XL8
OCV_H3   DS    XL8
OCV_H4   DS    XL8
OCV_H5   DS    XL8
OCV_H6   DS    XL8
OCV_H7   DS    XL8
OCV_MBL  DS    XL16                     MESSAGE BIT LENGTH
         ORG   OCV_MBL
         DS    XL8
OCV_MBLH DS    XL4
OCV_MBLL DS    XL4
         ORG   ,
@CV_LEN  EQU *-OCV                      CHAINING VECTOR LENGTH
*
@SHA1    EQU   1                        SHA-1   FUNCTION CODE
@SHA224  EQU   2                        SHA-224 FUNCTION CODE
@SHA256  EQU   2                        SHA-256 FUNCTION CODE
@SHA384  EQU   3                        SHA-384 FUNCTION CODE
@SHA512  EQU   3                        SHA-512 FUNCTION CODE
@GHASH   EQU   65                       GHASH   FUNCTION CODE
         END   ,
 
  • Страница 1 из 1
  • 1
Поиск: