# Forge
[![npm package](https://nodei.co/npm/node-forge.png?downloads=true&downloadRank=true&stars=true)](https://nodei.co/npm/node-forge/)
[![Build Status](https://github.com/digitalbazaar/forge/workflows/Main%20Checks/badge.svg)](https://github.com/digitalbazaar/forge/actions?query=workflow%3A%22Main+Checks%22)
A native implementation of [TLS][] (and various other cryptographic tools) in
[JavaScript][].
Introduction
------------
The Forge software is a fully native implementation of the [TLS][] protocol
in JavaScript, a set of cryptography utilities, and a set of tools for
developing Web Apps that utilize many network resources.
Performance
------------
Forge is fast. Benchmarks against other popular JavaScript cryptography
libraries can be found here:
* http://dominictarr.github.io/crypto-bench/
* http://cryptojs.altervista.org/test/simulate-threading-speed_test.html
Documentation
-------------
* [Introduction](#introduction)
* [Performance](#performance)
* [Installation](#installation)
* [Testing](#testing)
* [Contributing](#contributing)
### API
* [Options](#options)
### Transports
* [TLS](#tls)
* [HTTP](#http)
* [SSH](#ssh)
* [XHR](#xhr)
* [Sockets](#socket)
### Ciphers
* [CIPHER](#cipher)
* [AES](#aes)
* [DES](#des)
* [RC2](#rc2)
### PKI
* [ED25519](#ed25519)
* [RSA](#rsa)
* [RSA-KEM](#rsakem)
* [X.509](#x509)
* [PKCS#5](#pkcs5)
* [PKCS#7](#pkcs7)
* [PKCS#8](#pkcs8)
* [PKCS#10](#pkcs10)
* [PKCS#12](#pkcs12)
* [ASN.1](#asn)
### Message Digests
* [SHA1](#sha1)
* [SHA256](#sha256)
* [SHA384](#sha384)
* [SHA512](#sha512)
* [MD5](#md5)
* [HMAC](#hmac)
### Utilities
* [Prime](#prime)
* [PRNG](#prng)
* [Tasks](#task)
* [Utilities](#util)
* [Logging](#log)
* [Flash Networking Support](#flash)
### Other
* [Security Considerations](#security-considerations)
* [Library Background](#library-background)
* [Contact](#contact)
* [Donations](#donations)
---------------------------------------
Installation
------------
**Note**: Please see the [Security Considerations](#security-considerations)
section before using packaging systems and pre-built files.
Forge uses a [CommonJS][] module structure with a build process for browser
bundles. The older [0.6.x][] branch with standalone files is available but will
not be regularly updated.
### Node.js
If you want to use forge with [Node.js][], it is available through `npm`:
https://www.npmjs.com/package/node-forge
Installation:
npm install node-forge
You can then use forge as a regular module:
```js
var forge = require('node-forge');
```
The npm package includes pre-built `forge.min.js`, `forge.all.min.js`, and
`prime.worker.min.js` using the [UMD][] format.
### jsDelivr CDN
To use it via [jsDelivr](https://www.jsdelivr.com/package/npm/node-forge) include this in your html:
```html
<script src="https://cdn.jsdelivr.net/npm/node-forge@1.0.0/dist/forge.min.js"></script>
```
### unpkg CDN
To use it via [unpkg](https://unpkg.com/#/) include this in your html:
```html
<script src="https://unpkg.com/node-forge@1.0.0/dist/forge.min.js"></script>
```
### Development Requirements
The core JavaScript has the following requirements to build and test:
* Building a browser bundle:
* Node.js
* npm
* Testing
* Node.js
* npm
* Chrome, Firefox, Safari (optional)
Some special networking features can optionally use a Flash component. See the
[Flash README](./flash/README.md) for details.
### Building for a web browser
To create single file bundles for use with browsers run the following:
npm install
npm run build
This will create single non-minimized and minimized files that can be
included in the browser:
dist/forge.js
dist/forge.min.js
A bundle that adds some utilities and networking support is also available:
dist/forge.all.js
dist/forge.all.min.js
Include the file via:
```html
<script src="YOUR_SCRIPT_PATH/forge.js"></script>
```
or
```html
<script src="YOUR_SCRIPT_PATH/forge.min.js"></script>
```
The above bundles will synchronously create a global 'forge' object.
**Note**: These bundles will not include any WebWorker scripts (eg:
`dist/prime.worker.js`), so these will need to be accessible from the browser
if any WebWorkers are used.
### Building a custom browser bundle
The build process uses [webpack][] and the [config](./webpack.config.js) file
can be modified to generate a file or files that only contain the parts of
forge you need.
[Browserify][] override support is also present in `package.json`.
Testing
-------
### Prepare to run tests
npm install
### Running automated tests with Node.js
Forge natively runs in a [Node.js][] environment:
npm test
### Running automated tests with Headless Chrome
Automated testing is done via [Karma][]. By default it will run the tests with
Headless Chrome.
npm run test-karma
Is 'mocha' reporter output too verbose? Other reporters are available. Try
'dots', 'progress', or 'tap'.
npm run test-karma -- --reporters progress
By default [webpack][] is used. [Browserify][] can also be used.
BUNDLER=browserify npm run test-karma
### Running automated tests with one or more browsers
You can also specify one or more browsers to use.
npm run test-karma -- --browsers Chrome,Firefox,Safari,ChromeHeadless
The reporter option and `BUNDLER` environment variable can also be used.
### Running manual tests in a browser
Testing in a browser uses [webpack][] to combine forge and all tests and then
loading the result in a browser. A simple web server is provided that will
output the HTTP or HTTPS URLs to load. It also will start a simple Flash Policy
Server. Unit tests and older legacy tests are provided. Custom ports can be
used by running `node tests/server.js` manually.
To run the unit tests in a browser a special forge build is required:
npm run test-build
To run legacy browser based tests the main forge build is required:
npm run build
The tests are run with a custom server that prints out the URLs to use:
npm run test-server
### Running other tests
There are some other random tests and benchmarks available in the tests
directory.
### Coverage testing
To perform coverage testing of the unit tests, run the following. The results
will be put in the `coverage/` directory. Note that coverage testing can slow
down some tests considerably.
npm install
npm run coverage
Contributing
------------
Any contributions (eg: PRs) that are accepted will be brought under the same
license used by the rest of the Forge project. This license allows Forge to
be used under the terms of either the BSD License or the GNU General Public
License (GPL) Version 2.
See: [LICENSE](https://github.com/digitalbazaar/forge/blob/cbebca3780658703d925b61b2caffb1d263a6c1d/LICENSE)
If a contribution contains 3rd party source code with its own license, it
may retain it, so long as that license is compatible with the Forge license.
API
---
<a name="options" />
### Options
If at any time you wish to disable the use of native code, where available,
for particular forge features like its secure random number generator, you
may set the ```forge.options.usePureJavaScript``` flag to ```true```. It is
not recommended that you set this flag as native code is typically more
performant and may have stronger security properties. It may be useful to
set this flag to test certain features that you plan to run in environments
that are different from your testing environment.
To disable native code when including forge in the browser:
```js
// run this *after* including the forge script
forge.options.usePureJavaScript = true;
```
To disable native code when using Node.js:
```js
var forge = require('node-forge');
forge.options.usePureJavaScript = true;
```
Transports
----------
<a name="tls" />
### TLS
Provides a native javascript client and server-side [TLS][] implementation.
__Examples__
```js
// create TLS client
var client = forge.tls.createConnection({
server: false,
c
没有合适的资源?快使用搜索试试~ 我知道了~
全新紫色新UI数码盲盒系统源码全开源无加密附教程.zip
共2002个文件
js:1341个
md:419个
json:185个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 72 浏览量
2024-12-03
08:19:37
上传
评论
收藏 448.26MB ZIP 举报
温馨提示
全新紫色新UI数码盲盒系统源码/全开源无加密/附教程 前端uniapp+H5 后端FastAdmin框架 可打包成APP多端运行 亲测可用 测试运行环境:Nginx+PHP7.2+MySQL5.6
资源推荐
资源详情
资源评论
收起资源包目录
全新紫色新UI数码盲盒系统源码全开源无加密附教程.zip (2002个子文件)
.DS_Store 6KB
.DS_Store 6KB
compiler-sfc.js 649KB
vue.js 426KB
vue.esm.js 411KB
vue.common.dev.js 392KB
vue.esm.browser.js 391KB
vue.runtime.js 308KB
vue.runtime.esm.js 297KB
vue.runtime.common.dev.js 284KB
source-map.debug.js 266KB
index.js 170KB
envinfo.js 132KB
source-map.js 104KB
vue.min.js 103KB
vue.esm.browser.min.js 100KB
vue.common.prod.js 99KB
Server.js 98KB
volume.js 86KB
webpack-cli.js 82KB
vue.runtime.min.js 72KB
lodash.min.js 71KB
vue.runtime.common.prod.js 71KB
index.js 66KB
uri.all.js 56KB
index.js 40KB
source-map-consumer.js 40KB
cli-flags.js 39KB
_stream_readable.js 35KB
ipaddr.js 33KB
sbcs-data-generated.js 31KB
index.js 28KB
response.js 27KB
parse.js 27KB
source-map.min.js 26KB
json-ext.js 26KB
index.js 26KB
main.js 24KB
_stream_writable.js 21KB
dbcs-codec.js 21KB
resolver_sync.js 20KB
uri.js 20KB
nodefs-handler.js 20KB
resolver.js 19KB
ipaddr.js 19KB
index.js 18KB
uri.all.min.js 17KB
_baseConvert.js 16KB
fsevents-handler.js 16KB
tests.js 15KB
index.js 15KB
application.js 14KB
parser.js 14KB
node.js 14KB
hybi.js 14KB
source-map-generator.js 14KB
source-node.js 13KB
lazy-result.js 13KB
http-parser.js 13KB
parse-chunked.js 13KB
util.js 13KB
graceful-fs.js 12KB
errors.js 12KB
punycode.es6.js 12KB
punycode.js 12KB
request.js 12KB
transport.js 12KB
ipaddr.min.js 11KB
async.js 11KB
stringify-stream.js 11KB
process-arguments.js 10KB
template.js 10KB
container.js 10KB
polyfills.js 10KB
mock.js 10KB
picomatch.js 10KB
_mapping.js 10KB
ipaddr.min.js 10KB
utf7.js 9KB
scan.js 9KB
map-generator.js 9KB
webjs.js 9KB
extend-node.js 8KB
old.js 8KB
node.js 8KB
dbcs-data.js 8KB
stringifier.js 8KB
sockjs.js 8KB
_stream_transform.js 8KB
regexps-uri.js 8KB
index.js 8KB
mailto.js 8KB
json-ext.min.js 7KB
index.js 7KB
trans-websocket.js 7KB
http-proxy-middleware.js 7KB
overlay.js 7KB
patchRequire.js 7KB
middleware.js 7KB
index.js 7KB
共 2002 条
- 1
- 2
- 3
- 4
- 5
- 6
- 21
资源评论
酷爱码
- 粉丝: 8729
- 资源: 1923
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- DCP-7090/7095D/7190DN/7195D等等英文手册
- vs-Community2017
- 防护具检测59-YOLO(v5至v9)、COCO、CreateML、Darknet、Paligemma、TFRecord、VOC数据集合集.rar
- 基于Vue.js快速构建python桌面应用程序的模板项目源码+运行教程(支持打包为可执行文件).zip
- 防护具检测57-YOLO(v5至v9)、COCO、CreateML、Darknet、Paligemma、TFRecord、VOC数据集合集.rar
- 视频下载-b站视频下载器
- CSV数据操作的工具包-含合并CSV文件、Excel转CSV、CSV转XLSX、统计CSV行数、重命名表头、选择和重排CSV列等功能.zip
- App商店优化(ASO)权威指南:提高App可见度与转化率的技术策略
- Pangu-Agent: 强化学习与大型语言模型相结合的一般智能体框架
- TomVPN_3.0.7.apk
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功