Suche senden
Hochladen
Apache Commons ソースリーディングの会:Codec
•
0 gefällt mir
•
3,269 views
moai kids
Folgen
Technologie
Melden
Teilen
Melden
Teilen
1 von 62
Jetzt herunterladen
Downloaden Sie, um offline zu lesen
Empfohlen
Introduction to Redis
Introduction to Redis
François-Guillaume Ribreau
Paris Redis Meetup Introduction
Paris Redis Meetup Introduction
Gregory Boissinot
An Introduction to REDIS NoSQL database
An Introduction to REDIS NoSQL database
Ali MasudianPour
Packet crafting of2013
Packet crafting of2013
Shteryana Shopova
DoH, DoT and ESNI
DoH, DoT and ESNI
Jisc
IPFS introduction
IPFS introduction
Genta M
Laura Garcia - Shodan API and Coding Skills [rooted2019]
Laura Garcia - Shodan API and Coding Skills [rooted2019]
RootedCON
wget, curl and scp
wget, curl and scp
Gaurav Mishra
Empfohlen
Introduction to Redis
Introduction to Redis
François-Guillaume Ribreau
Paris Redis Meetup Introduction
Paris Redis Meetup Introduction
Gregory Boissinot
An Introduction to REDIS NoSQL database
An Introduction to REDIS NoSQL database
Ali MasudianPour
Packet crafting of2013
Packet crafting of2013
Shteryana Shopova
DoH, DoT and ESNI
DoH, DoT and ESNI
Jisc
IPFS introduction
IPFS introduction
Genta M
Laura Garcia - Shodan API and Coding Skills [rooted2019]
Laura Garcia - Shodan API and Coding Skills [rooted2019]
RootedCON
wget, curl and scp
wget, curl and scp
Gaurav Mishra
Linux Binary Exploitation - Return-oritend Programing
Linux Binary Exploitation - Return-oritend Programing
Angel Boy
Webinaire 2 de la série « Retour aux fondamentaux » : Votre première applicat...
Webinaire 2 de la série « Retour aux fondamentaux » : Votre première applicat...
MongoDB
"A rootkits writer’s guide to defense" - Michal Purzynski
"A rootkits writer’s guide to defense" - Michal Purzynski
PROIDEA
What's New in the PHP Driver
What's New in the PHP Driver
MongoDB
Hydra - Getting Started
Hydra - Getting Started
abramsm
Introduction to solr
Introduction to solr
Sematext Group, Inc.
Tajo Seoul Meetup-201501
Tajo Seoul Meetup-201501
Jinho Kim
Centralized Logging with syslog
Centralized Logging with syslog
amiable_indian
leboncoin DataEngineering / Terraform - beginner to advanced
leboncoin DataEngineering / Terraform - beginner to advanced
leboncoin engineering
Redis学习笔记
Redis学习笔记
yongboy
Overview and evolution of password-based authentication schemes
Overview and evolution of password-based authentication schemes
Ignat Korchagin
Tthornton code4lib
Tthornton code4lib
trevorthornton
CONFidence 2015: Fuzz your way into the web server's zoo - Andrey Plastunov
CONFidence 2015: Fuzz your way into the web server's zoo - Andrey Plastunov
PROIDEA
Clamdigging: Leveraging ClamAV for Malware Analysis and Detection
Clamdigging: Leveraging ClamAV for Malware Analysis and Detection
malwareforme
Managing Your Security Logs with Elasticsearch
Managing Your Security Logs with Elasticsearch
Vic Hargrave
OSDC 2012 | Scaling with MongoDB by Ross Lawley
OSDC 2012 | Scaling with MongoDB by Ross Lawley
NETWAYS
IPFS: A Whole New World
IPFS: A Whole New World
ArcBlock
Thinking in documents
Thinking in documents
César Rodas
IPWB and IPFS at WAC2017
IPWB and IPFS at WAC2017
David Dias
Webinar alain-2009-03-04-clamav
Webinar alain-2009-03-04-clamav
thc2cat
Extracting Forensic Information From Zeus Derivatives
Extracting Forensic Information From Zeus Derivatives
Source Conference
Cache on Delivery
Cache on Delivery
SensePost
Weitere ähnliche Inhalte
Was ist angesagt?
Linux Binary Exploitation - Return-oritend Programing
Linux Binary Exploitation - Return-oritend Programing
Angel Boy
Webinaire 2 de la série « Retour aux fondamentaux » : Votre première applicat...
Webinaire 2 de la série « Retour aux fondamentaux » : Votre première applicat...
MongoDB
"A rootkits writer’s guide to defense" - Michal Purzynski
"A rootkits writer’s guide to defense" - Michal Purzynski
PROIDEA
What's New in the PHP Driver
What's New in the PHP Driver
MongoDB
Hydra - Getting Started
Hydra - Getting Started
abramsm
Introduction to solr
Introduction to solr
Sematext Group, Inc.
Tajo Seoul Meetup-201501
Tajo Seoul Meetup-201501
Jinho Kim
Centralized Logging with syslog
Centralized Logging with syslog
amiable_indian
leboncoin DataEngineering / Terraform - beginner to advanced
leboncoin DataEngineering / Terraform - beginner to advanced
leboncoin engineering
Redis学习笔记
Redis学习笔记
yongboy
Overview and evolution of password-based authentication schemes
Overview and evolution of password-based authentication schemes
Ignat Korchagin
Tthornton code4lib
Tthornton code4lib
trevorthornton
CONFidence 2015: Fuzz your way into the web server's zoo - Andrey Plastunov
CONFidence 2015: Fuzz your way into the web server's zoo - Andrey Plastunov
PROIDEA
Clamdigging: Leveraging ClamAV for Malware Analysis and Detection
Clamdigging: Leveraging ClamAV for Malware Analysis and Detection
malwareforme
Managing Your Security Logs with Elasticsearch
Managing Your Security Logs with Elasticsearch
Vic Hargrave
OSDC 2012 | Scaling with MongoDB by Ross Lawley
OSDC 2012 | Scaling with MongoDB by Ross Lawley
NETWAYS
IPFS: A Whole New World
IPFS: A Whole New World
ArcBlock
Thinking in documents
Thinking in documents
César Rodas
IPWB and IPFS at WAC2017
IPWB and IPFS at WAC2017
David Dias
Webinar alain-2009-03-04-clamav
Webinar alain-2009-03-04-clamav
thc2cat
Was ist angesagt?
(20)
Linux Binary Exploitation - Return-oritend Programing
Linux Binary Exploitation - Return-oritend Programing
Webinaire 2 de la série « Retour aux fondamentaux » : Votre première applicat...
Webinaire 2 de la série « Retour aux fondamentaux » : Votre première applicat...
"A rootkits writer’s guide to defense" - Michal Purzynski
"A rootkits writer’s guide to defense" - Michal Purzynski
What's New in the PHP Driver
What's New in the PHP Driver
Hydra - Getting Started
Hydra - Getting Started
Introduction to solr
Introduction to solr
Tajo Seoul Meetup-201501
Tajo Seoul Meetup-201501
Centralized Logging with syslog
Centralized Logging with syslog
leboncoin DataEngineering / Terraform - beginner to advanced
leboncoin DataEngineering / Terraform - beginner to advanced
Redis学习笔记
Redis学习笔记
Overview and evolution of password-based authentication schemes
Overview and evolution of password-based authentication schemes
Tthornton code4lib
Tthornton code4lib
CONFidence 2015: Fuzz your way into the web server's zoo - Andrey Plastunov
CONFidence 2015: Fuzz your way into the web server's zoo - Andrey Plastunov
Clamdigging: Leveraging ClamAV for Malware Analysis and Detection
Clamdigging: Leveraging ClamAV for Malware Analysis and Detection
Managing Your Security Logs with Elasticsearch
Managing Your Security Logs with Elasticsearch
OSDC 2012 | Scaling with MongoDB by Ross Lawley
OSDC 2012 | Scaling with MongoDB by Ross Lawley
IPFS: A Whole New World
IPFS: A Whole New World
Thinking in documents
Thinking in documents
IPWB and IPFS at WAC2017
IPWB and IPFS at WAC2017
Webinar alain-2009-03-04-clamav
Webinar alain-2009-03-04-clamav
Ähnlich wie Apache Commons ソースリーディングの会:Codec
Extracting Forensic Information From Zeus Derivatives
Extracting Forensic Information From Zeus Derivatives
Source Conference
Cache on Delivery
Cache on Delivery
SensePost
Auto cad 2006_api_overview
Auto cad 2006_api_overview
scdhruv5
[DLHacks]Introduction to ChainerCV
[DLHacks]Introduction to ChainerCV
Deep Learning JP
cinema_time_new.pdf
cinema_time_new.pdf
MaxDmitriev
¡El mejor lenguaje para automatizar pruebas!
¡El mejor lenguaje para automatizar pruebas!
Antonio Robres Turon
Coding with Riak (from Velocity 2015)
Coding with Riak (from Velocity 2015)
Basho Technologies
Engage 2019: Introduction to Node-Red
Engage 2019: Introduction to Node-Red
Paul Withers
Web前端性能优化 2014
Web前端性能优化 2014
Yubei Li
Web encoding
Web encoding
Ailsa126
Rooting your internals - Exploiting Internal Network Vulns via the Browser Us...
Rooting your internals - Exploiting Internal Network Vulns via the Browser Us...
Michele Orru
The Performance Engineer's Guide To HotSpot Just-in-Time Compilation
The Performance Engineer's Guide To HotSpot Just-in-Time Compilation
Monica Beckwith
Adding Riak to your NoSQL Bag of Tricks
Adding Riak to your NoSQL Bag of Tricks
siculars
Relational Database Access with Python ‘sans’ ORM
Relational Database Access with Python ‘sans’ ORM
Mark Rees
The Architecture of PicCollage Server
The Architecture of PicCollage Server
Lin Jen-Shin
Node js quick-tour_v2
Node js quick-tour_v2
tianyi5212222
Node js quick-tour_v2
Node js quick-tour_v2
http403
Node js quick tour v2
Node js quick tour v2
Wyatt Fang
Bh ad-12-stealing-from-thieves-saher-slides
Bh ad-12-stealing-from-thieves-saher-slides
Matt Kocubinski
Lessons learned while building Omroep.nl
Lessons learned while building Omroep.nl
bartzon
Ähnlich wie Apache Commons ソースリーディングの会:Codec
(20)
Extracting Forensic Information From Zeus Derivatives
Extracting Forensic Information From Zeus Derivatives
Cache on Delivery
Cache on Delivery
Auto cad 2006_api_overview
Auto cad 2006_api_overview
[DLHacks]Introduction to ChainerCV
[DLHacks]Introduction to ChainerCV
cinema_time_new.pdf
cinema_time_new.pdf
¡El mejor lenguaje para automatizar pruebas!
¡El mejor lenguaje para automatizar pruebas!
Coding with Riak (from Velocity 2015)
Coding with Riak (from Velocity 2015)
Engage 2019: Introduction to Node-Red
Engage 2019: Introduction to Node-Red
Web前端性能优化 2014
Web前端性能优化 2014
Web encoding
Web encoding
Rooting your internals - Exploiting Internal Network Vulns via the Browser Us...
Rooting your internals - Exploiting Internal Network Vulns via the Browser Us...
The Performance Engineer's Guide To HotSpot Just-in-Time Compilation
The Performance Engineer's Guide To HotSpot Just-in-Time Compilation
Adding Riak to your NoSQL Bag of Tricks
Adding Riak to your NoSQL Bag of Tricks
Relational Database Access with Python ‘sans’ ORM
Relational Database Access with Python ‘sans’ ORM
The Architecture of PicCollage Server
The Architecture of PicCollage Server
Node js quick-tour_v2
Node js quick-tour_v2
Node js quick-tour_v2
Node js quick-tour_v2
Node js quick tour v2
Node js quick tour v2
Bh ad-12-stealing-from-thieves-saher-slides
Bh ad-12-stealing-from-thieves-saher-slides
Lessons learned while building Omroep.nl
Lessons learned while building Omroep.nl
Mehr von moai kids
中国最新ニュースアプリ事情
中国最新ニュースアプリ事情
moai kids
FluentdとRedshiftの素敵な関係
FluentdとRedshiftの素敵な関係
moai kids
Twitterのsnowflakeについて
Twitterのsnowflakeについて
moai kids
Programming Hive Reading #4
Programming Hive Reading #4
moai kids
Programming Hive Reading #3
Programming Hive Reading #3
moai kids
"Programming Hive" Reading #1
"Programming Hive" Reading #1
moai kids
Casual Compression on MongoDB
Casual Compression on MongoDB
moai kids
Introduction to MongoDB
Introduction to MongoDB
moai kids
Hadoop Conference Japan 2011 Fallに行ってきました
Hadoop Conference Japan 2011 Fallに行ってきました
moai kids
HBase本輪読会資料(11章)
HBase本輪読会資料(11章)
moai kids
snappyについて
snappyについて
moai kids
第四回月次セミナー(公開版)
第四回月次セミナー(公開版)
moai kids
第三回月次セミナー(公開版)
第三回月次セミナー(公開版)
moai kids
Pythonで自然言語処理
Pythonで自然言語処理
moai kids
HandlerSocket plugin Client for Javaとそれを用いたベンチマーク
HandlerSocket plugin Client for Javaとそれを用いたベンチマーク
moai kids
Yammer試用レポート(公開版)
Yammer試用レポート(公開版)
moai kids
掲示板時間軸コーパスを用いたワードトレンド解析(公開版)
掲示板時間軸コーパスを用いたワードトレンド解析(公開版)
moai kids
中国と私(仮題)
中国と私(仮題)
moai kids
不自然言語処理コンテストLT資料
不自然言語処理コンテストLT資料
moai kids
n-gramコーパスを用いた類義語自動獲得手法について
n-gramコーパスを用いた類義語自動獲得手法について
moai kids
Mehr von moai kids
(20)
中国最新ニュースアプリ事情
中国最新ニュースアプリ事情
FluentdとRedshiftの素敵な関係
FluentdとRedshiftの素敵な関係
Twitterのsnowflakeについて
Twitterのsnowflakeについて
Programming Hive Reading #4
Programming Hive Reading #4
Programming Hive Reading #3
Programming Hive Reading #3
"Programming Hive" Reading #1
"Programming Hive" Reading #1
Casual Compression on MongoDB
Casual Compression on MongoDB
Introduction to MongoDB
Introduction to MongoDB
Hadoop Conference Japan 2011 Fallに行ってきました
Hadoop Conference Japan 2011 Fallに行ってきました
HBase本輪読会資料(11章)
HBase本輪読会資料(11章)
snappyについて
snappyについて
第四回月次セミナー(公開版)
第四回月次セミナー(公開版)
第三回月次セミナー(公開版)
第三回月次セミナー(公開版)
Pythonで自然言語処理
Pythonで自然言語処理
HandlerSocket plugin Client for Javaとそれを用いたベンチマーク
HandlerSocket plugin Client for Javaとそれを用いたベンチマーク
Yammer試用レポート(公開版)
Yammer試用レポート(公開版)
掲示板時間軸コーパスを用いたワードトレンド解析(公開版)
掲示板時間軸コーパスを用いたワードトレンド解析(公開版)
中国と私(仮題)
中国と私(仮題)
不自然言語処理コンテストLT資料
不自然言語処理コンテストLT資料
n-gramコーパスを用いた類義語自動獲得手法について
n-gramコーパスを用いた類義語自動獲得手法について
Kürzlich hochgeladen
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
Neo4j
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
Fwdays
The transition to renewables in India.pdf
The transition to renewables in India.pdf
Competition Advisory Services (India) LLP
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
Scott Keck-Warren
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
BookNet Canada
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
2toLead Limited
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
Fwdays
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
BookNet Canada
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
Mattias Andersson
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
Allon Mureinik
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
Ridwan Fadjar
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
Enterprise Knowledge
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
Pixlogix Infotech
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
null - The Open Security Community
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
Memoori
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024
Neo4j
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
null - The Open Security Community
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
BookNet Canada
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
OnBoard
Kürzlich hochgeladen
(20)
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
The transition to renewables in India.pdf
The transition to renewables in India.pdf
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
Apache Commons ソースリーディングの会:Codec
1.
2.
Apache Commons
Codec ※ → encode decode)
3.
• • • •
(ex.Base64)
4.
✓Commons Codec ✓org.apache.commons.codec ✓org.apache.commons.codec.binary ✓org.apache.commons.codec.digest ✓org.apache.commons.codec.language ✓org.apache.commons.codec.net ✓
5.
http://commons.apache.org/codec/ 2009
1.4 Ver.UP Java1.4
6.
• org.apache.commons.codec.binary
- - Base64 / Hex / Binary Codec • org.apache.commons.codec.digest - MD5 SHA1 • org.apache.commons.codec.language - - Soundex / Metaphone • org.apache.commons.codec.net - - URLCodec(URL Encode) / Quoted Printable Codec / BCodec / QCodec
7.
✓Commons Codec ✓org.apache.commons.codec ✓org.apache.commons.codec.binary ✓org.apache.commons.codec.digest ✓org.apache.commons.codec.language ✓org.apache.commons.codec.net ✓
8.
org.apache.commons.codec • •
Exception - Encoder / Decoder - BinaryEncoder / BinaryDecoder - StringEncoder / StringDecoder - StringEncoderComparator - DecoderException / EncoderException - CharEncoding(charset )
9.
✓Commons Codec ✓org.apache.commons.codec ✓org.apache.commons.codec.binary ✓org.apache.commons.codec.digest ✓org.apache.commons.codec.language ✓org.apache.commons.codec.net ✓
10.
org.apache.commons.codec.binary •
- BinaryEncoder / BinaryDecoder - Base64 - Base64InputStream / Base64OutputStream - Hex - BinaryCodec - StringUtils
11.
Base64 • 64 •
Basic • 4/3
12.
Base64 Encoding •
• [0-9a-zA-Z+/] • Commons Codec • STANDARD_ENCODE_TABLE • [0-9a-zA-Z+/] • URL_SAFE_ENCODE_TABLE • [0-9a-zA-Z-_] • RFC http://www.ietf.org/rfc/rfc2045.txt
13.
• •
urlSafe:boolean • lineLength:int • lineLength:int, lineSeparator:byte[] • lineLength:int, lineSeparator:byte[], urlSafe:boolean
14.
• lineLength
• • 76 • RFC2045 section 6.8. http://tools.ietf.org/html/rfc2045#section-6.8
15.
• lineSeparator
• • CRLF rn • RFC2045 section 2.1. http://tools.ietf.org/html/rfc2045#section-2.1 mail RFC RF822
16.
• urlSafe
• • true:URL_SAFE_ENCODE_TABLE • false:STANDARD_ENCODE_TABLE (default)
17.
encodeBase64 • binaryData:byte[] • binaryData:byte[]
,isChunked:boolean • binaryData:byte[] ,isChunked:boolean ,urlSafe:boolean • binaryData:byte[] ,isChunked:boolean ,urlSafe:boolean, maxResultSize:int
18.
encodeBase64 • binaryData
• • null
19.
encodeBase64 • isChunked
• • true 76 lineLength ( lineLength / 4 * 4) • false:
20.
encodeBase64 • urlSafe
• • Base64.encodeBase64()
21.
encodeBase64 • maxResultSize
• • IllegalArgumentException
22.
encodeBase64 •
• null • maxResultSize • Base64 • encode • null • • EOF •
23.
decodeBase64 • base64data:byte[] • base64String:String
• StringUtils.getBytesUtf8() UTF-8
24.
decodeBase64 •
• • EOF
25.
org.apache.commons.codec.binary •
- BinaryEncoder / BinaryDecoder - Base64 - Base64InputStream / Base64OutputStream - Hex - BinaryCodec - StringUtils
26.
Hex •
16 char • LOWER or UPPER •
27.
org.apache.commons.codec.binary •
- BinaryEncoder / BinaryDecoder - Base64 - Base64InputStream / Base64OutputStream - Hex - BinaryCodec - StringUtils
28.
BinaryCodec •
2 char •
29.
✓Commons Codec ✓org.apache.commons.codec ✓org.apache.commons.codec.binary ✓org.apache.commons.codec.digest ✓org.apache.commons.codec.language ✓org.apache.commons.codec.net ✓
30.
org.apache.commons.codec.digest • MessageDigest -
DigestUtils
31.
MessageDigest? •
• MD5 SHA1 • Java java.security.MessageDigest • DigestUtils MessageDigest
32.
DigestUtils •
• MD5 SHA1 SHA256 SHA384 SHA51 2 • • Stream UTF-8 • • 16
33.
✓Commons Codec ✓org.apache.commons.codec ✓org.apache.commons.codec.binary ✓org.apache.commons.codec.digest ✓org.apache.commons.codec.language ✓org.apache.commons.codec.net ✓
34.
org.apache.commons.codec.language •
Phonetic Algorithm ※Phonetic Algorithm: - StringEncoder - Soundex - Metaphone - RefinedSoundex - DoubleMetaphone - Caverphone - SoundexUtils
35.
Soundex •
• • • Soundex • “Robert”,”Rupert” → R163
36.
• Soundex http://en.wikipedia.org/wiki/Soundex •
Metaphone http://en.wikipedia.org/wiki/Metaphone • Caverphone http://en.wikipedia.org/wiki/Caverphone
37.
✓Commons Codec ✓org.apache.commons.codec ✓org.apache.commons.codec.binary ✓org.apache.commons.codec.digest ✓org.apache.commons.codec.language ✓org.apache.commons.codec.net ✓
38.
org.apache.commons.codec.net •
- BinaryEncoder / BinaryDecoder / StringEncoder / StringDecoder - URLCodec - QuotedPrintableCodec - RFC1522Codec - QCodec - BCodec - Utils
39.
URLCodec •
URL • java.net.URLEncoder / URLDecoder • Commons Codec • URLCodec QuotedPrintable
40.
• • charset:String
• charset • UTF-8
41.
encode •
bytes:byte[] • pObject:Object • pString:String • pString:String, charset:String • charset charset
42.
encode •
• • • URL Safe ʼ+ʼ • URL Safe:[0-9a-zA-Z-_.* ] • URL Safe ʼ%ʼ + 16
43.
decode •
bytes:byte[] • pObject:Object • pString:String • pString:String, charset:String • charset charset
44.
decode •
• • • URL Safe ʼ+ʼ • URL Safe:[0-9a-zA-Z-_.* ] • URL Safe ʼ%ʼ
45.
org.apache.commons.codec.net •
- BinaryEncoder / BinaryDecoder / StringEncoder / StringDecoder - URLCodec - QuotedPrintableCodec - RFC1522Codec - QCodec - BCodec - Utils
46.
QuotedPrintableCodec • RFC1521 • 8
7 • Content-Transfer-Encoding: quoted-printable • • 0x21(10 :33) 0x3c(60) 0x3e(62) 0x72(126) • ʼ=ʼ + 4 2 ) 16 (ex.ʼ=ʼ→”=3D”)
47.
• • charset:String
• charset • UTF-8
48.
encode •
bytes:byte[] • pObject:Object • pString:String • pString:String, charset:String • charset charset
49.
encode •
• • • • ʼ=ʼ + 16
50.
decode •
bytes:byte[] • pObject:Object • pString:String • pString:String, charset:String • charset charset
51.
decode •
• • ʼ=ʼ • ʻ=ʻ • ʻ=ʻ
52.
org.apache.commons.codec.net •
- BinaryEncoder / BinaryDecoder / StringEncoder / StringDecoder - URLCodec - QuotedPrintableCodec - RFC1522Codec - QCodec - BCodec - Utils
53.
RFC1522Codec • RFC1521 1522
MIME RFC • ASCII • RFC1522Codec • [sample] =?ISO-2022-JP?B?GyRCJD8hIxsoQg==?= • QCodec:Quoted Printable • BCodec:Base64 • BCodec
54.
QCodec • • charset:String
• charset • UTF-8
55.
encode • pObject:Object • pString:String •
pString:String, charset:String • charset charset
56.
encode •
• PREFIX (“=?”) • charset • (ʻ?ʼ) • (QCodec ʼQʼ) • (ʻ?ʼ) • Quoted Printable • POSTFIX (“?=”)
57.
decode • pObject:Object • pString:String
• ※QCodec charset
58.
decode •
• PREFIX POSTFIX • charset (QCodec or BCodec) •
59.
BCodec • QCodec QCodec
• ʼBʼ • Base64
60.
✓Commons Codec ✓org.apache.commons.codec ✓org.apache.commons.codec.binary ✓org.apache.commons.codec.digest ✓org.apache.commons.codec.language ✓org.apache.commons.codec.net ✓
61.
Commons Codec
Jetzt herunterladen