# crypto-js **Repository Path**: white628/crypto-js ## Basic Information - **Project Name**: crypto-js - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 40 - **Created**: 2022-07-13 - **Last Updated**: 2024-06-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # crypto-js ## 简介 > 加密算法类库,可以非常方便的在前端进行其所支持的加解密操作。目前crypto-js已支持的算法有:MD5、SHA-1、SHA-256、HMAC、HMAC-MD5、HMAC-SHA1、HMAC-SHA256、PBKDF2等。 ![preview.gif](preview/preview.gif) ## 下载安装 ```shell npm install @ohos/crypto-js --save ``` OpenHarmony npm环境配置等更多内容,请参考 [如何安装OpenHarmony npm包](https://gitee.com/openharmony-tpc/docs/blob/master/OpenHarmony_npm_usage.md) 。 ## 使用说明 1. 引入依赖 ``` import { BlockCipher } from '@ohos/crypto/' import prompt from '@system.prompt' import { md5 } from '@ohos/crypto/' import { sha1 } from '@ohos/crypto/' import { sha256 } from '@ohos/crypto/' import { sha512 } from '@ohos/crypto/' import { ripemd160 } from '@ohos/crypto/' import { sha224 } from '@ohos/crypto/' import { sha384 } from '@ohos/crypto/' import { sha3 } from '@ohos/crypto/' import { Latin1 } from '@ohos/crypto/' import { Hex } from '@ohos/crypto/' import { WordArray } from '@ohos/crypto/' import { EvpKDF } from '@ohos/crypto/' import { Utf8 } from '@ohos/crypto/' import { Utf16 } from '@ohos/crypto/' import { Utf16LE } from '@ohos/crypto/' import { PBKDF2 } from '@ohos/crypto/' import { AES, ECB, NoPadding } from '@ohos/crypto/' import { Base64 } from '@ohos/crypto/' ``` 2. md5 ``` md5.prototype.hex_md5('message') ``` 3. sha1 ``` sha1.prototype.hex_sha1('message'); ``` 4. sha256 ``` sha256.prototype.hex_sha256('message') ``` 5. sha512 ``` sha512.prototype.hex_sha512('message') ``` 6. ripemd160 ``` ripemd160.prototype.hex_rmd160('message') ``` 7. hmac-md5 ``` md5.prototype.hex_hmac_md5('message', 'pwd') ``` 8. hmac-sha1 ``` sha1.prototype.hex_hmac_sha1('message', 'pwd') ``` 9. hmac-sha256 ``` sha256.prototype.hex_hmac_sha256('message', 'pwd') ``` 10. hmac-sha512 ``` sha512.prototype.hex_hmac_sha512('message', 'pwd') ``` 11. hmac-ripemd160 ``` ripemd160.prototype.hex_hmac_rmd160('message', 'pwd') ``` 12. WordArray ``` let random: WordArray = WordArray.create(words, sigBytes) let random: WordArray = WordArray.random(nBytes) ``` 12. hex ``` let wordArray = Hex.parse(hexStr) let result = Hex.stringify(wordArray); ``` 13. aes ``` var ciphertext = aes.encrypt(value, key,{mode:CBC,padding:PKCS7,iv:iv}).toString(); var msg = aes.decrypt("dxzV163oPuT1U/2786nFDHP4dcg8W2Kj4GRgkzAwv1s=", key,{mode:CBC,padding:PKCS7,iv:iv}).toString(Utf8.prototype); ``` 14. 处理中文编码 ``` **编码 aes.encrypt(Utils.strToBinary("测试中文"), key,{mode:CBC,padding:PKCS7,iv:iv}).toString(); **解码 var bytes = aes.decrypt("i1bWXSmmhXu9V4+eXGgimxBpobMMq06/ej9qQnG3QtNvNMHddUTiKnaKXvXTXNRljFJ5ASQhD8HbBPmKuJre8A==", key,{mode:CBC,padding:PKCS7,iv:iv}).toString(Utf8.prototype); var value = Utils.binaryToStr(bytes) ``` ## 接口说明 1. md5加密 `md5.hex_md5(s)` 2. sha1加密 `sha1.hex_sha1(s)` 3. sha256加密 `sha256.hex_sha256(s)` 4. sha512加密 `sha512.hex_sha512(s)` 5. ripemd160加密 `ripemd160.hex_rmd160(s)` 6. 十六进制解析`Hex.parse()` 7. WordArray转换十六进制字符串`Hex.stringify()` 8. 随机生成WordArray`WordArray.random()` 9. 创建WordArray`WordArray.create()` ## 兼容性 支持 OpenHarmony API version 8 及以上版本。 ## 目录结构 ```` |---- crypto-js | |---- entry # 示例代码文件夹 | |---- crypto # crypto-js库文件夹 | |---- src | |---- main | |---- ets | |---- AES # aes加密类 | |---- BufferedBlockAlgorithmConfig.ts # mode接口 | |---- EDS.ts # des加密类 | |---- enc-base64.ts # base64加密类 | |---- enc-hex.ts # hex加密类 | |---- enc-utf8.ts # utf8加密类 | |---- enc-utf16.ts # utf16加密类 | |---- enc-utf16LE.ts # utf16LE加密类 | |---- Encoding.ts # Encoding接口 | |---- evpkdf.ts # evpkdf加密类 | |---- KDF.ts # kdf加密类 | |---- Latin1.ts # latin1加密类 | |---- lib-WordArray.ts # 随机数类 | |---- hmac.ts # hmac加密类 | |---- md5.ts # md5加密类 | |---- MyMD5.ts # md5加密类 | |---- MySha1.ts # sha1加密类 | |---- pbkdf2.ts # pbkdf2加密类 | |---- rabbit.ts # rabbit加密类 | |---- rabbit-legacy.ts # rabbit-legacy加密类 | |---- RC4.ts # RC4加密类 | |---- RC4Drop.ts # RC4Drop加密类 | |---- ripemd160.ts # ripemd160加密类 | |---- sha1.ts # sha1加密类 | |---- sha256.ts # sha256加密类 | |---- sha512.ts # sha512加密类 | |---- StreamCipher.ts # 流加密类 | |---- TripleDES.ts # TripleDES加密类 | |---- Utf8.ts # Utf8加密类 | |---- Utils.ts # 针对string转ascii 和ascii 转string | |---- x64_core.ts # sha3的实体 | |---- index.ets # 对外接口 | |---- README.md # 安装使用方法 ```` ## 贡献代码 使用过程中发现任何问题都可以提 [Issue](https://gitee.com/hihopeorg/crypto-js/issues) 给我们,当然,我们也非常欢迎你给我们发 [PR](https://gitee.com/hihopeorg/crypto-js/pulls) 。 ## 开源协议 本项目基于 [MIT License](https://gitee.com/hihopeorg/crypto-js/blob/master/LICENSE) ,请自由地享受和参与开源。